
/*
    KAB-studio.h
        　ＫＡＢ−ｓｔｕｄｉｏで先週更新した内容
        が格納されたヘッダーファイルです（笑）。

    (C)KAB-studio ALL RIGHTS RESERVED.
        http://www2.justnet.ne.jp/~kabstudio/
        kab-studio@multimedia.design.co.jp

    送信日： 1999/05/03(Mon) No.005
    配信数： 1800（ Mag2 + Pubzine ）
*/



/*            １９９９年５月３日の更新                */

・Ｃｏｄｉａｎにページを追加：
　先週に引き続きＣｏｄｉａｎの「Ｃ＋＋を使いこなす！！」にコンストラ
クタ（後編）を追加。うーん、結局具体的な使い方を載せられなかったのが
ちょっと悔しい……。



/*                チョー普通な日記                */

１９９９年４月２５日（日）：
　悪夢が来た。タブレットを付け５月の表紙を描き、デッサン力の無さなど
を嘆きつつメールを見るとＴＡが認識されないひいいいい！！　認識されな
いひいいいい！！


１９９９年４月２６日（月）：
　再セットアーップ、深夜のお供に再セットアーップ、ハイになるクスリ再
セットアーップ（ネタ提供しゅりんぷ氏）、そして「スペースアルプス伝説」
を読め！！　面白いから、マジで！！


１９９９年４月２７日（火）：
　あなたは「いいひと。」？　僕は西武ファン。そして「スペースアルプス
伝説」にはまった人がもう１人。


１９９９年４月２８日（水）：
　宮部みゆきの「火車」を読む。そして評する。小説家になりたいなー。


１９９９年４月２９日（木）：
　眠いかもとかイラスト描きとか。ロボコン、電通大不甲斐ない。さて私と
電通大の関係は？


１９９９年４月３０日（金）：
　５月表紙イラスト完成！！　その全行程を載っけようと思ったけどやめた。
バチが当たってテープ食われる。アニメもあんまだしベクターのＤＬ数も落
ちてるし。


１９９９年５月１日（土）：
　世界最大の謎！！　と、へへーんわてってば小説だけは自信あんのよへへ
んとゆーおはなし。


/*                    金菜さんの憂鬱                        */

１９９９年４月２５日（日）：
お休み


１９９９年４月２６日（月）：
再セットアップ
キーカスタマイズ
ダイヤモンドカーソル
改行の代わりに LineOpenBelow 
WordLeft -> WordUpperCase -> WordRight をマクロ登録
CapsLock は不便だから


１９９９年４月２７日（火）：
「プログラミング辞書」のお知らせ
お便り
エラーメッセージボックスの音を消したい
APISPY 
ＡＰＩをフックするのは大変
レジストリの操作
マルチメディアＡＰＩ
ボリュームをミュート


１９９９年４月２８日（水）：
ＫＴＬ
メッセージマネジメントシステム
プロシージャってウィンドウとダイアログで違う
サンプルコード
スタティックメンバ関数
お便り
CreateProcess() で作ったダイアログをタスクバーから消したい
ウィンドウなら WS_EX_TOOLWINDOW 
ダイアログの場合には透明なウィンドウを親に
この場合は SetParent() 


１９９９年４月２９日（木）：
ＫＴＬ
ウィンドウプロシージャ周り
サンプルコード
基底クラスの仮想関数を呼び出すことで派生関数を呼び出す
* const と const_cast<>() 


１９９９年４月３０日（金）：
ＫＴＬ
メンバ関数ポインタを使う方法
メッセージマネジメントシステム
クラステンプレートのテンプレート引数を自動指定
関数テンプレートを使えばいい
メンバ関数ポインタは「引数」として渡せる
このふたつを組み合わせたら……


１９９９年５月１日（土）：
ＫＴＬのメッセージプロシージャ
マクロのサンプルコード
switch 用のマクロ
次の問題はダイアログコントロール
外の変数へのポインタを通してデータを渡すような形にしたい




/*                    #pragma twice                        */

　Version 1.2
プロジェクトを探検しよう！！


『なんかこの前はつまんなかったなー』
「じゃ、今日はどうかな？」
『なんか自信ありそ。今回は何するの？』
「前回作った【FirstProject】を探検するのが、今回のメイン」
　フォルダを開き、前回作成した【FirstProject】フォルダを表示する。
 "FirstProject" というファイル名で拡張子の違うものが１０ほど、
 "FirstProjectDlg" というファイル名で拡張子の違うものがふたつ、その他
のファイルがいくつか、それと "Debug" と "Res" のフォルダ。
『結構多いね。これ全部、ＶＣってのが作ったの？』
「そう。プログラムを作るのって結構大変だから、プログラマーを必要とし
ない部分は代わりにしちゃおう、っていうこと」
『便利なもんねー。便利なものは人をダメにするっておじいちゃんが言って
たけど』
「それは正解だね。このファイルをよく分からないまま使ってちゃちょっと
もったいないかな」
『で、そのための探検ってことね。でさ、このＶＣってので見るの？』
「とりあえずは、それぞれのファイルをドロップしてみようか」
『ほーい』
　マウスカーソルが動き、フォルダの中の一番上のファイル、
 "FirstProject.aps" をＶＣにドロップする。一番左に数字の列、中央に英
 語と数字の表、右側に文字。
『あ〜これ、この前使った【バイナリーエディタ】ってヤツよね』
「そうそう。ＶＣは、ファイルにあわせて使うエディタを自動的に選んでく
れるから」
『じゃあ "FirstProject.aps" はバイナリーエディタで見るファイルってこ
とね』
「んー、って言うよりは＜ハズレ＞かな」
『ハズレ？』
「そ。ファイルにあわせてエディタを変えるんだけど、どれを使えばいいの
か分からないときにはバイナリーエディタを開くことになってるから」
『つまり？』
「つまり、僕らが開くべきファイルじゃなかったってとこかな」
『え〜？　だって、あたし達が使わなかったら誰が使うの？』
「ＶＣが使うんだよ」
『あ、そっか』
「このプロジェクトのデータが、このファイルに入ってるってこと」
『このファイルには何が入ってるの？』
「何だろうね」
『知らんのかい！！』
「だってＶＣが必要としてるファイルだもの。僕らには関係ないんだし」
『こいつって……』
「じゃ、次ドロップして」
『はいはい』
　フォルダから "FirstProject.clw" がドロップされる。エディタが開き、
日本語を含んだ文章が入っている。
『何これ、プログラム？』
「ううん、これはプログラムじゃないよ。一番上の行に＜; CLW ファイルは
 MFC ClassWizard の情報を含んでいます。＞って書いてあるでしょ」
 『うん』
 「【ClassWizard】っていうのは、今度紹介するけどプログラムの中を見通
 しよくしてくれるもののこと。メニューの【表示】−【ワークスペース】
 を選んでみて」
『表示、ワークスペース、っと』
 　ウィンドウがふたつの枠に分かれ、一方に先ほどの "FirstProject.clw"
の中身、もう一方にアイコン付きのツリー表示が現れる。
『あ、一番下のタブに【ClassView】ってあるよ、これのこと？』
「そうそう」
　勝手に【ClassView】タブをクリックする。 "FirstProject クラス" をルー
トに、 "CFirstProjectApp" と "CFirstProjectDlg" そして "グローバル" の
みっつが表示される。
『あ、"CFirstProjectApp" とか "CFirstProjectDlg"って、
 "FirstProject.clw" の中に書いてあるね』
 「そうでしょ、たとえば
 
 [CLS:CFirstProjectApp]
Type=0
HeaderFile=FirstProject.h
ImplementationFile=FirstProject.cpp
Filter=N

　って書いてある部分を見てみようか」
『この "FirstProject.h" とか "FirstProject.cpp" って、フォルダの中に
あるよ。これのこと？』
「そうそう、分かってるじゃん」
『でへへ〜』
「変な照れ方するな」
『うっさい！！』
「この文はね、＜ CFirstProjectApp っていうクラスの、情報が
 "FirstProject.h" に、中身が "FirstProject.cpp" にありますよ、ってこ
 とを意味してるんよ」
 『クラスってなに？　ガッコ？』
 「ちゃうちゃう。言うより見た方が早いでしょ。 "FirstProject.h" を開
 いて見てみようか」
 『順番狂っちゃうけど、なんか面白そうだし〜』
 　"FirstProject.h" がドロップされ、テキストエディタが開き文章が表示
 される。
 『あ、これ、これこれ、プログラムってヤツでしょ！！』
 「そういうこと。これがプログラム」
 『あ〜！　これが＜ CFirstProjectApp クラス＞でしょ！！ 』
 　マウスカーソルがせわしなく動き、
 
 class CFirstProjectApp : public CWinApp

　の行を反転表示させる。
『 "class" って書いてあるし、ってことは右の "public CWinApp" っての
が "CFirstProjectApp" の中身なんでしょー。私ってば頭いい！！』
「悪いけど大ハズレだよーん」
『だよーんとか言われるとさらにムカツク！！　じゃあその下の "{" とか
 "public:" とか "CFirstProjectApp();" とか、そこからどこまでかは分か
 んないけど、とにかくその下がクラスの中身なんでしょ、そうでしょ？』
「何もそんなに怒んなくても……うーん、一応そうかなー、うん、そう、そ
の通り！！」
『……あ、じゃあこっちがクラスの中身？　そういえばさっきそんなこと言っ
てたし』
　今度は "FirstProject.cpp" をドロップする。再び同じような文章が表示
される。
『ビンゴ！！　こっちにも "CFirstProjectApp" とか書かれてるし、こっち
の方が色々書いてあるし、こっちが中身なんでしょ！？』
「そう、そうだから落ち着いてよ」
『ぷん』
「何回かあとで説明するけど、 "FirstProject.h" には "CFirstProjectApp"
 の情報が、 "FirstProject.cpp" には "CFirstProjectApp" の中身が入っ
 てて、どっちもプログラムとして必要不可欠なものなんだよ」
『……だから、両方合わせて＜ CFirstProjectApp クラス＞ってこと？』
「そういうこと。あったまいいじゃなーい！」
『ふふん、当たり前のことよ』
「芸達者なヤツ……この中身の解説は、まんまプログラムの解説だから、もう
少し先。とりあえず置いといて、他のファイル見てみようか」
『はーい』
　"FirstProject.dsp" をドロップする。が、ダイアログが表示されてファ
イルの中身は表示されない。
『あれ？』
「あ、これはこの＜プロジェクト＞のデータを格納しているファイルだから、
このままドロップできないんだ。【ファイル】−【開く】で、【用途】−
【テキスト】で開いてみて。あ、【ファイルの種類】は【すべてのファイル】
ね」
『これって第３回の時に、バイナリーエディタで開いたときと同じよね。そっ
かー、これで開くと自分の好きな形式でファイルを開けるのねー』
「そういうこと」
　マウスカーソルが動いてファイルダイアログが開き、 "FirstProject.dsp"
を選択してファイルを開く。再び日本語混じりの文章が表示されるが、どち
らかというと "FirstProject.clw" に近い。
『何これー、これは全然分かんないなー』
「でもゆっくり見ていくと、結構分かるところあるよ。たとえば、

CPP=cl.exe

　っていう行あるでしょ」
『あ、Ｅｘｅって書いてあるから実行ファイルよね。ってことはこれ、何か
に使われるの？』
「これは＜コンパイラ＞っていうアプリケーション」
『コンパイラ？　日本語で＜編集さん＞って意味よね。プログラムを見やす
くしてくれるの？』
「それは結構正しいかな。でも、僕らにとってじゃなくて、コンピューター
にとってね」
『どういう意味？』
「僕らが作ったプログラムを、コンピューターの分かるデータに変換してく
れるのが、このコンパイラの役目」
『？？』
「 "FirstProject.h" や "FirstProject.cpp" の中身を、

00000   4D 5A 90 00 03 00 00 00   04 00 00 00 FF FF 00 00
00010   B8 00 00 00 00 00 00 00   40 00 00 00 00 00 00 00
00020   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00
00030   00 00 00 00 00 00 00 00   00 00 00 00 B8 00 00 00
00040   0E 1F BA 0E 00 B4 09 CD   21 B8 01 4C CD 21 54 68

　みたいにしてくれる、って言えば分かるかな？」
『あ〜！！　これ第３回に見たのだーっ！！　……あ、つまり、プログラム
を、こういう実行ファイルの形式のデータに変換してくれるの、それがこの
コンパイラってゆーのなのね！！』
「そういうことそういうこと。このファイルには、実際に＜どうやってアプ
リケーションを作るか＞っていう設定が書かれているってこと」
『へ〜。じゃあさじゃあさ、下の方の "/nologo" とか "/MDd" とか、"/" 
の付いたのがいっぱいあるけど、これは何？』
「これはスイッチ」
『電気をつけたり消したりする？』
「そう、それと同じ。たとえば "/nologo" が書かれていないと、前回した
【ビルド】の時に、色々と表示されるんだよ。書かれていれば、表示されな
い、そういうことのスイッチが、これ」
『じゃ、そういうの設定する時って、これ書き換えるの』
「ううん、他に方法があるんだけど、それはまた今度ね」
『ふーん、じゃこの下の方にある……あ、 "FirstProject.cpp" とかはさっ
きのプログラムが入ってるファイルだものね。これを＜コンパイル＞するっ
てことなんだー』
「そういうこと。もうかなり分かってきたんじゃない？」
『分かったって言えば分かったけど、分かんないって言えば分かんないって
ゆーか……』
「っていうと？」
『 "FirstProject.h" とか "FirstProject.cpp" にプログラムが入ってて、
それを "cl.exe" っていう＜コンパイラ＞が＜実行ファイル＞にしてくれる、
とかは分かったけど、実際の "FirstProject.dsp" の中身とかってチンプン
カンプンなのよねー』
「大丈夫大丈夫、それで十分だから！！」
『え、そなの？』
「今回の＜プロジェクトファイルの探検＞は、プロジェクトファイル全体を
見渡すことと、火美ちゃんの不安を取り除くことが目的だから」
『そういえば、この前なんかはいつのまにかアプリができてたわけだけど、
今回ので＜どうやったらできるのか＞みたいなイメージできたかも……』
「というわけでつづく！！」
『ええーっ！？』



/*
    Preview Next Story!
*/
『なに、なんで＜つづく＞なの？』
「プロジェクトファイルって大きいからねー、あと３回くらい必要かな」
『あと３回も？　なんかクラクラしそう……』
「大丈夫だって、言ったでしょ、物見遊山の気持ちでいいって」
『そういえば、今回色々と見てきて、結構面白かったかも』
「うんうん、結構順調に進んでるなー」
『というわけで次回』
＜ Version 1.3 プロジェクトとワークスペース ＞
「につづく！！」
『ってことは、＜プログラミング＞の話はまだまだ先ってことよね』
「ぎくっ」






/*            １９９９年５月１０日の更新予定                */

・表紙を５月バージョンに！！：
　毎月恒例、新しい表紙の登場です！！　今回はさらに会社で見づらい表
紙（爆）なので、今のうちにリンクをサイトマップに変えておくのもいかが
かと（汗）。




/*                        ご注意！！                        */
/*

　このメールマガジンをそのまま「返信」すると、作者のメールアドレス
（kab-studio@multimedia.design.co.jp）へと転送される仕組みになってい
ます。「まぐまぐ」もしくは「Ｐｕｂｚｉｎｅ」の管理者へメールを送りた
い場合には、直接そちらへメールを送ってください。

*/
/*

　このメールマガジンの購読登録を解除する場合には

http://www2.justnet.ne.jp/~kabstudio/Info/MailMagazine/start.html

　が便利です。また、購読解除についての詳しい情報は、
登録時に送られてきた「まぐまぐ」もしくは「Ｐｕｂｚｉｎｅ」からの
メールをお読みください。

*/
/*

　本誌のバックナンバーはホームページ上にはありません。まぐまぐの

http://bigbeat.tegami.com/~mgsearch/frame.cgi?id=0000012198

　にありますのでそちらをどうぞ。

*/
/*

　このメールマガジンは、
まぐまぐ （ http://www.mag2.com/ ）
Ｐｕｂｚｉｎｅ （ http://www.pubzine.com/ ）
　を通して発行されました。

*/
/*
    KAB-studio.h
    Weekly Mail Magazine.
    Written by Kaburaya Seiden.

    (C)KAB-studio ALL RIGHTS RESERVED.
        http://www2.justnet.ne.jp/~kabstudio/
        kab-studio@multimedia.design.co.jp
*/


/*                    See you next week!!                    */


