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

    (C)KAB-studio 1999 - 2000 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com

    送信日： 2000/07/24(Mon) No.067
    配信数： 3800（ Mag2 + Pubzine ）
＊    発行元： まぐまぐ( URL: http://www.mag2.com/  ID: 0000012198 )
＊    発行元： Pubzine( URL: http://www.pubzine.com/  ID: 590 )
*/
{magclick}

/*              ２０００年７月２４日（月）の更新                  */
http://www.kab-studio.com/Info/News/

・プログラミング辞書単語受付再開！
　プログラミング辞書の追加単語受付を再開しました！！
　ようやく先が見えてきたってことで、プログラミング辞書への単語追加受
付を再開します。これまで送れずにいた単語をじゃんじゃん送ってください！
　……ただし、あまりにも多すぎた場合にはちょっと困るかも（汗）。更新
は以前同じ、月曜にまとめて行います。
[プログラミング辞書]
http://www.kab-studio.com/Programing/Dictionary/


/*                        チョー普通な日記                        */
http://www.kab-studio.com/nikki2/

2000/07/16 (Sun)
　母方の祖母がピンチであわてふためく。そしてクレペリン検査の続き。極
悪でないですか？

2000/07/17 (Mon)
　就職情報・各社編！　実はあんなことやこんなことも……ああっ！！

2000/07/18 (Tue)
　角煮ラーメン。プログラミング辞書のヒット数が大アップ！　でもカウン
ターが増えない……。そして（爆）の意味。

2000/07/19 (Wed)
　信号処理論のテスト。それなりにはできたかな？　今度は父方の祖母。そ
してＣマガ。

2000/07/20 (Thu)
　新マック登場、その名はＧ４キューブ！！　ってことはＧＧＧ６４？　そ
して再びクレペリン。

2000/07/21 (Fri)
　父方の祖母が亡くなられてしまった。そして馳せる今は亡き猫達への想い。

2000/07/22 (Sat)
　そのお葬式のためお休み。



/*                         鏑矢の憂鬱                             */
http://www.kab-studio.com/Programing/KabuU/

2000/07/16 (Sun)
お休み

2000/07/17 (Mon)
お休み

2000/07/18 (Tue)
お休み

2000/07/19 (Wed)
Ｃマガジン第１特集
std::map を iostream に渡す場合
std::ostream_iterator に入れて std::copy() に渡すのがセオリー
カスタムイテレーターを作れば問題はない
重要なのはアイディアがあるかどうか
その点で標準 C++ ライブラリは敷居が高い

2000/07/20 (Thu)
イテレーターの雛形を作る必要あり
継承してもいいけどタイムロスがかさみそう
テスト用には便利かも
ぷらとわを２話完成
お便り
ＣマガジンがWindowsプログラミング誌化してきてる

2000/07/21 (Fri)
お便り
C# についてのリンク
型決定はランタイムかコンパイルタイムか
クラスは COM コンポーネントに
謎な部分が多い
お便り
STL の可読性
理解してることと解説できることは別
STL の可読性は微妙
カスタマイズも可読性を落としかねない
敷居が高い

2000/07/22 (Sat)
お休み


/*             プログラミング辞書・今週の追加単語                 */
http://www.kab-studio.com/Programing/Dictionary/
（現在単語追加中！　げしげし送ってください！）


{magclick}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
「今してるのはファイルテストのだから」
『ってことは、 iostream とか使うの？』
「そ、簡単にだけど、使い方くらいをね」
　予習したいあなたは購読登録＜って、バックナンバーないんやから。
http://www.kab-studio.com/Programing/STLiostream/
_______________________________________________________________[KCM]
{magclick}


/*                       #pragma twice                            */
http://www.kab-studio.com/Programing/PragmaTwice/

　Version 5.02
リストボックスを使おう

「じゃ、今回はリストボックスを簡単に使ってみましょう」
『おー！！』
「さて、どうすればいいと思う？」
『分かんない』
「……」
『……』
「じゃーとりあえず方針。【表示】ボタンを押すと、テキトーな文字がリス
トボックスに表示されるようにしましょう」
『ってゆーか、リストボックスってどんなのだっけ。フォルダみたいなの？』
「ううん、ただ単語を縦にずらっと並べるの」
『なんか単純』
「だって最初の練習用だもの。いきなりすごいのにしたら」
『難しいわけねー』
「じゃ、まずは【表示】ボタンを押したときのハンドラ関数を作って」
『ボタンのだから、テストアプリ作ったときのと同じ方法でいいんだよね』
「そう。詳しくは Ver 4.01 （ No.051 ）を見てくださいってことで」
『イベントハンドラとかって前にかなーり色々したよね』
「ちょっと忘れちゃった？」
『ちょっと』
「んーと、何かが起きること、たとえばボタンが押されたりとかそーゆーの
をイベントって言います」
『で、イベントが起きた時に呼ばれる関数がイベントハンドラってゆーのよ
ね』
「そうそう」
『で、ボタンのイベントハンドラは、右クリックメニューの【イベント】を
選んで、そのまんま【追加と編集】選べばいいんだよね』
「そうそう。そうすれば関数ができるから。どんな関数？」
『どんなって？』
「復習復習」
『あ、えーっと……』

void CFileTestDlg::OnBtnShow() 
{
    // TODO: この位置に（以下略）
}

『 void CFileTestDlg::OnBtnShow() ってなってるから、まず引数がなくて、
戻り値が void だからなし』
「そうそう」
『あと、えーっと、 CFileTestDlg がクラス名で、 OnBtnShow がそのメン
バ関数なんだよね』
「そうそう。結構憶えてるね」
『うん、なんとか』
「ま、この辺はまた後でしっかり見てく予定。さてボタンのイベントハンド
ラを作りました。実際にこのハンドラが呼ばれてるか確認するには？」
『んっと、ブレークポイント付ければ分かるんじゃない？　あと TRACE() 
付けるとか』
「そうだね。まだイベントハンドラ作り慣れてないうちはチェックした方が
いいかもね」
『あたしはテストアプリ作り慣れてるもん』
「じゃあ飛ばして、このボタンを押したらリストボックスに文字を表示させ
たいわけだけど……こんなパターン、憶えてない？」
『計算機！！　【＝】ボタン押したらエディットボックスに数字入ってるっ
てゆーの』
「そう！　あれに似た方法で行きます。あのときはまずどうしたっけ」
『 Ver 3.10 （ No.035 ）によると、まずクラスウィザードってのを……』
　メニューの【表示】−【ClassWizard】を選ぶ。
『これ、懐かしいなー』
「クラスウィザードは、クラスの機能とウィンドウズの機能を結びつけてく
れる便利なもの」
『？　そうだっけ』
「今初めて言ったかも。【メンバ変数】のページを見て」
『ほいっと。うん、ボタンとかリストボックスとかのＩＤが並んでるね』
「リストボックスのＩＤ【IDC_LST_DATA】をダブルクリックして」
『ダブルクリック！　ダイアログが出た』
「でまず一番上の【メンバ変数】を【m_cDataLstBox】に。真ん中の【カテ
ゴリ】を【コントロール】に。んで最後の【変数のタイプ】は、【CListBox】
に」
『あれ？　確か計算機の時は、カテゴリが【値】だったよね』
「そうそう。【値】も【コントロール】も、コントロールを変数として見な
す、っていう点は同じ」
『この例だと、ダイアログに貼っつけたリストボックスが m_cDataLstBox 
って変数と同じになるってことだよね』
「で、リストボックスっていっぱい文字列が入るでしょ。そうなると、エ
ディットボックスみたいには操作できないわけ」
『どして？』
「 int i に何種類も数字入れられる？」
『ううん、ひとつ。そっか、リストボックスにはいっぱい入ってるから、一
個の変数って見なせないんだ』
「そう。エディットボックスはデータがひとつしか入らない、そういう場合
には【値】ってして、ひとつの変数って見なすことができます」
『で、リストボックスにはいっぱい入ってるから……どうして【コントロー
ル】？』
「【コントロール】の場合には、コントロールを操作することができるから」
『操作？』
「たとえば〈２番目の値を取得〉とかね」
『あ、なるほど！　【コントロール】は細かい操作ができるから、いっぱい
データが入っててもうまくできるんだ』
「そういうこと。実際、エディットボックスやチェックボックスとか以外は
ほとんど【コントロール】にして、操作してくことになるから」
『ってことはつまり、そーゆーコントロールを使うには、その操作の方法が
分かればＯＫってことよね』
「そういうこと！　んじゃ【OK】押して」
『作成！　で、どうなったんだっけ』
「今ので、リストボックスを m_cDataLstBox ってメンバ変数から操作でき
るようになりました」
『メンバ変数って、クラスの中の変数だよね。でもどのクラス？』
「今のクラスウィザードのページに書いてあるでしょ」
『あ、【クラス名】 CFileTestDlg だって』
「じゃあこのクラスの中から、 m_cDataLstBox を作ってる場所を探しましょ
う！」
『げげ。えーっと、 Ver 3.18 （ No. 043 ）を見ると、メンバ変数はクラ
スの本体の方にあって、その本体はヘッダーファイルにあるから…… C 取
って .h 付けて、 FileTestDlg.h ってファイルにあるのかな』
「そうそう。見てみ」
『じゃ、ファイルビューから』

class CFileTestDlg : public CDialog
{
// 略
    CListBox    m_cDataLstBox;
// 略
};

『これが、 m_cDataLstBox を作ってるとこだよね』
「そうそう。こういうメンバ変数は、同じクラスのどのメンバ関数からも呼
び出すことができます」
『それって、この前教わった、ローカルな変数と違うってこと？』
「そう。メンバ変数はローカルな変数と、アクセスできる範囲とか寿命とか
全然違うから。その辺はおいおいだね」
『ほいほい。で、どうするの？』
「どうすればいいと思う？　最初の方針はどうだっけ」
『【表示】ボタンを押したら、だよね。あ、さっき作ったハンドラの
CFileTestDlg::OnBtnShow() もこのクラスのメンバ関数なんだ』
「そう、同じダイアログの操作は、同じクラス、つまり」
『 CFileTestDlg の中でってことになるんだ。だから【表示】のハンドラも、
リストボックスのメンバ変数も、 CFileTestDlg が持ってるんだ』
「そういうこと。で？」
『えーっと、さっき水希ちゃんが〈 m_cDataLstBox を操作して、リストボ
ックスを操作できる〉みたいに言ってたんだから……』

void CFileTestDlg::OnBtnShow() 
{
    m_cDataLstBox    // ……
}

『……で、これのメンバ関数を呼べばいいんだろうけど……』
「このメンバ変数の型は？」
『 CListBox って書いてあるね。さっき、クラスウィザードで作るときに選
んだのだね』
「 CListBox は MFC のクラスのひとつ。リストボックスを操作するための
クラス」
『へー、そういうのが用意されてるんだ』
「ってことは？」
『 MSDN っ！　えっと、 CListBox の上にカーソル置いて、 Ｆ１キー！　
うお、色々出た』
「どれ選ぶ？」
『えーっと、確か〈日本語っぽいの〉から選ぶんだよね。で、 
【CListBox::CListBox】ってのは分かんないけど、【CListBox クラスメン
バ】はたぶんメンバ変数とかメンバ関数がいっぱい見られるんだね。で、た
だの【CListBox】は、 CListBox の説明が載ってるっぽいから、これ！』
「そのページに CListBox の説明が載ってるから」
『……だけどチンプンカンプンなんですけど〜』
「そうかもしんない……。まーこの辺は、 MFC 解説書の方が詳しく書いて
あるかもね。それか、使いまくって習うより慣れろ、か」
『それ！　じゃ、クラスメンバのページっと。ううっ、いっぱいある……』
「今回は、とりあえず適当な文字列を追加するのが目的だから」
『どれかなどれかな……あ、 AddString ってそれっぽくない？』
「当たり！　んじゃ使ってみて」
『えっと、メンバ関数だから……』

    m_cDataLstBox.AddString( );

『引数が LPCTSTR ってなってるけど？』
「前にちょっと触れたけど、これが出てきたら "あいうえお" みたいな文字
列を渡せるから」
『あ、じゃあそんな感じに』

void CFileTestDlg::OnBtnShow() 
{
    m_cDataLstBox.AddString( "あたし" );
}

『じゃ、ビルドして実行！！　……なにも起きないよ？』
「【表示】ボタン押さなきゃ」
『あ、そうそう。ぼちっと、リストボックスに【あたし】って出た！』
「このメンバ関数を立て続けに呼べば、どんどんリストボックスに追加でき
るから」
『こんな感じ？』

void CFileTestDlg::OnBtnShow() 
{
    m_cDataLstBox.AddString( "あたし" );
    m_cDataLstBox.AddString( "水希ちゃん" );
    m_cDataLstBox.AddString( "こんな感じ？" );
}

『あ、ちゃんとリストボックスに３つ出た！』
「これが、リストボックスを操作する、ってこと。まとめると？」
『ダイアログにリストボックス貼り付けたら、クラスウィザードで CListBox
型のメンバ変数にくっつけて、あとはそのメンバ変数で操作！』
「基本はそんなところ、だね」

/*
    Preview Next Story!
*/
『なんだ、こんなのかんたんじゃん！』
「 LPCTSTR ってなーんだ」
『分かんない』
「その辺をしっかり潰していきましょう」
『というわけで次回』
＜ Version 5.03 配列とポインタ ＞
「につづく！」
『またつまんなくなりそう……』
「できることが増えれば、楽しくなるよ？」


/*                       金菜さんの憂鬱                           */
http://www.kab-studio.com/Programing/KanaU/
（今は休止中。来週復活できるかも！？）


/*            ２０００年７月３１日（月）の更新予定                */
http://www.kab-studio.com/Info/News/

・……？
　？　なんか更新できるかな。８月表紙はたぶん時間ないから無理だろうし。
あーでも、かなゆ〜の復活とか、あとプログラミング辞書の単語追加を再開
したりとかはあるから、その辺で我慢してねー。


/*                          ご注意！！                            */

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.com/nikki2/
・プログラミングに関する質問は[鏑矢の憂鬱]にお送りください。
http://www.kab-studio.com/Programing/KabuU/
・購読登録を解除したいときにはこのページで行なってください。
＊http://www.mag2.com/m/0000012198.htm
＊http://www.pubzine.com/detail.asp?id=000590
・解除は自分で行なってください。
・バックナンバーはこれらのページにあります。
http://bigbeat.tegami.com/~mgsearch/frame.cgi?id=0000012198
http://www.kab-studio.com/Freeware/

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

    (C)KAB-studio 1999 - 2000 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com
*/


/*                      See you next week!!                      */


