////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


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

    送信日： 2002/09/09(Mon) No.173
    配信数： 3650 ( Mag2 + Pubzine )
＊    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
＊    発行元： Pubzine ( URL: http://www.pubzine.com/  ID: 590 )
*/
////////////////////////////////////////////////////////////////////

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

・ほとはー３の１追加！
　三人合体ホットハーブに３の１を追加しました。新章突入で主人公にも変
化が……。
[ 三人合体ホットハーブ ]
http://www.kab-studio.com/Comic/HotHerb/


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

2002/09/01 (Sun)
　ずっと月姫やってました。シナリオがパラレル化してなくて少しずつ明ら
かになるのが新鮮。秋葉様〜。今日は一歩も外出してない……。

2002/09/02 (Mon)
　月姫コンプ。秋葉様〜。少しずつ展開されるシナリオが新鮮。志貴もいい
感じ。それ以外のキャラは普通？　歌月十夜がいい感じ〜。お仕事は障害の
再現。拾えないはずないし。帰りに歌月十夜とか月姫アンソロとか。

2002/09/03 (Tue)
　体調悪い？　仕事は不具合関係。ＰＣって汎用性はどうかと。小岩井のミ
ルクジャムがない。歌月十夜がいい感じだ……。そして月姫 PLUS-DISK 。
買ってないです〜。新しいＰＣ買おうかな？

2002/09/04 (Wed)
　客先へ。ちょんぼ。解りやすいコードってホントに大切？　性格が傾いて
る。ほとはーこつこつ。妹切草がいい感じ。月姫ってスレイヤーズに似てる
ような……。

2002/09/05 (Thu)
　メインプロジェクト本格始動。余裕ある感じ。恐るべきザウルス。帰って
からはのんびり。影を見せた方が光が映える。

2002/09/06 (Fri)
　徹夜明け。お仕事は昨日の続きとプログラムの解析。会社の同僚と焼き肉
食べたりゲームしたり。マリオカートがいい感じ。寝たは寝たけど。七つ夜
って実は……。

2002/09/07 (Sat)
　体調悪い。でもほとはーとかぶヘッダーは。日記の妙な日本語と実際の話
し方の違い。秋葉様と琥珀さん。人の好みって、ホントに人それぞれだね。


////////////////////////////////////////////////////////////////////
/*                         風雅、舞い                             */
http://www.kab-studio.com/Novel/Fuga/

■　第五章　変化　−１−

　洋風の豪華な部屋は、煙草の臭いが立ちこめていた。煙草を吸わない行雄
はそれを苦痛に感じていたが、これから始まるプレゼンテーションを考えれ
ばそのような痛みは吹き飛ぶほど軽いものだった。
　会議はすでに始まり、予定調和の言葉がゆっくりと交わされていた。
「マスコミは情報を求めている。もうそろそろ、何らかの形で公開すべきで
はないのかね？」
「その……＜闇＞ですか、それが降り立つ場所を隠しておけば、それほど混
乱は起きないと思いますが」
「やはり、この計画は中止すべきでしょう」
「あなたは」
「いや、やはり時期尚早だ。あまりにも諸外国に与える影響が」
「それが本来の目的ではないのですか？　韓国、台湾、そして中国。東アジ
アの中心となるためには、力を示さねばならないでしょう」
「そのためには、アメリカの影を消し去らなくてはならない」
「安保を否定すると？」
「否定はしない。だが、特に中国がアメリカと同等の力を持つことは想像に
容易い。そうなったとき、日本が間を取り持てられればよいのだ」
「核を持たないのに……それほどの影響力を得られるというのか？」
「核兵器はもちろん、科学、生物兵器、そして地雷などのような無差別大量
殺戮兵器ではない、という点が重要です」
「そうだ、だからこそ東アジアに対する反日感情をそれほど駆り立てること
もない」
「それはどうですかな、どんな兵器であれ、驚異となりうるのであれば」
「だが、世代は変わった。各国とも、ゲームのような経済戦争に夢想してい
る。このＬＷシリーズとて、単なる飾りになるだろう」
「では逆に、そのＬＷとかいうのは、どれほどのものなのか？」
「そうだ、これは一種のショック療法のようなものだ。なら、ショックは大
きければ大きいほどいい」
「なんでも、先日の実戦演習では畑をひとつ駄目にしたそうじゃないか」
「畑を駄目にしたのは解る。だが、納屋や家まで崩したとは……何か事故で
も起きたのかね、重機が倒れたとか」
「そうだ、無駄な出費であれば、その分予算を削減しなければなるまい」
「そこのところ、どうなのかね、石和君」
　全員の視線が石和に集まる。
「田中君、頼む」
　脇にいる行雄に目配せし、行雄は立ち上がる。
「ではこれより、先日の第三回実戦演習の模様を見ていただきましょう。我
らが至宝の傑作、ＬＷシリーズとＡＰシリーズの力を……」
「ＡＰシリーズ？」
　証明が落ち、モニターが点ったとき、行雄の顔は別人かと思えるものに
なっていた。

                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
『えーっと、９月はリニューアル期間、らしいです』
「３連休が２回あるから、その間にってことみたい」
『リニューアルって何するの？』
「まず、 #pragma twice をホームページの方にも載せるみたい」
『おー！　我らがぷらとわ、とうとうホームページデビュー！』
「いまいち知名度上がってないから」
『もっと有名度を上げるためって事？　なんで有名じゃないの？』
「ホームページの読者の、メールマガジンの読者って違うってことだね」
『そーゆーもんなんだ。よくわかんないけど。他には？』
「何が？」
『リニューアルすること』
「……決まってないみたい」
『……』
http://www.kab-studio.com/
_______________________________________________________________[KCM]


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

　Version 9.12
ツールバーを操作する！

「前回は実際にツールバーを使ってみました」
『って言ってもメニューなんかとほとんど同じだけどねー』
「というわけで、今回はプログラム側から操作してみます」
『やっぱそう来るわけね……』
「嫌そうだね」
『べつにー。で、どうするの？』
「えーっと、 Version 9.09 ( No.170 ) を軽く読み返してもらうと分かる
けど、ツールバーを作ったりするときには m_wndToolBar ってメンバ変数を
使います」
『ってことは、操作もこの変数使ってするんだ』
「そう、というわけでいつものテスト用メンバ関数に、次のようなコードを
書き込んでください」

void CMainFrame::OnMenuTest() 
{
    // ツールバーコントロールを取得します。
    CToolBarCtrl &rcToorBarCtrl
        = m_wndToolBar.GetToolBarCtrl();
    // ボタンが淡色かどうかチェック。
    BOOL bIsEnabled
        = rcToorBarCtrl.IsButtonEnabled( ID_FILE_NEW );
    if( bIsEnabled == FALSE )
    {
        TRACE( "無効状態です\n" );
    }
    else
    {
        TRACE( "有効状態です\n" );
    }
}

『お、ちょっと長い』
「でも後半は」
『あー、ただ if でメッセージ分けてるだけね』
「そう、重要なのは前半」

    // ツールバーコントロールを取得します。
    CToolBarCtrl &rcToorBarCtrl
        = m_wndToolBar.GetToolBarCtrl();

「えーっと、参照って憶えてる？」
『 Version 4.14 ( No.064 ) でやったね、ポインタみたいのだよね』
「そうそう、ポインタみたいに他の変数の代わりになる変数なんだけど、ア
ドレスを使ったり -> を使ったりする必要がないっていうの」
『この rcToorBarCtrl は参照なんだね、 & 付けて変数作ってるから』
「そう。これは CToolBar::GetToolBarCtrl() が参照を返すから」
『？？　参照とかより、そっちの方がわかんない』
「うん、その辺説明するね。 Version 9.09 ( No.170 ) で見たように、
ツールバーは外側の MFC が作ったツールバーの中に、ウィンドウズの本物
のツールバーが入ってる形になってます」
『ウィンドウクラスが違ったんだよね』
「 m_wndToolBar メンバ変数のクラス CToolBar は、 MFC の外側を管理す
るためのクラス」
『これが外側のツールバーを作ってるわけね』
「そゆこと。ってことは、中の本当のツールバーはまた別って事。本当の
ツールバーを操作するのは CToolBarCtrl ってクラス」
『あ、さっき参照作ったクラス！』
「そうそれ。この CToolBarCtrl クラスのメンバ変数が CToolBar の中に隠
れてて、 CToolBar は本当のツールバーを操作するときにそのメンバ変数を
使ってツールバーを操作するんです」
『なんかヤな感じ……』
「なんで？」
『だって、ドレイっぽくない？』
「うーん……」
『まーいーや。で？』
「あ、で、本当のツールバーを操作する場合、 CToolBar では操作できない
んです」
『なんで？　CToolBar から CToolBarCtrl 操作してもらえばいいんじゃな
いの？』
「そういう機能が CToolBar にはないんです」
『やっぱヤな感じ』
「で、代わりに CToolBarCtrl メンバ変数を外から操作できるようにして、
それを使って直接本当のツールバーを操作してください、っていう仕組みに
なってるわけ」
『あ！　そっか、それがさっきの参照なんだ』
「そゆこと。あの参照は、 CToolBar の中の CToolBarCtrl メンバ変数への
参照。だからあれを使えば」
『本当のツールバーを操作できる！』
「ってわけ。で、実際に操作してる部分が」

    BOOL bIsEnabled
        = rcToorBarCtrl.IsButtonEnabled( ID_FILE_NEW );

「 CToolBarCtrl::IsButtonEnabled() は、ボタンが有効だったら 0 以外、
無効だったら 0 を返す関数」
『 ID_FILE_NEW は【ファイルを新規作成】ボタンね。これって普通は使え
るよね』
「そう、だから」
『ビルドして実行！　お、〈有効状態です〉って出た！』
「ってわけ。同じように」

void CMainFrame::OnMenuTest() 
{
    // ツールバーコントロールを取得します。
    CToolBarCtrl &rcToorBarCtrl
        = m_wndToolBar.GetToolBarCtrl();
    // ボタンが淡色かどうかチェック。
    BOOL bIsEnabled
        = rcToorBarCtrl.IsButtonEnabled( ID_EDIT_CUT );
    if( bIsEnabled == FALSE )
    {
        TRACE( "無効状態です\n" );
    }
    else
    {
        TRACE( "有効状態です\n" );
    }
}

「 ID_FILE_NEW が ID_EDIT_CUT になっただけだから」
『 ID_EDIT_CUT は〈切り取り〉……あ、これって最初は淡色表示なんだ
ね』
「そう、だから」
『ビルドして実行！　お、今度は〈無効状態です〉って出た』
「こんなふうに、ボタンが有効か無効かを取得できるってわけ」
『質問！』
「はい火美ちゃん」
『なんで FALSE と比べてるんだっけ。 TRUE と比べちゃいけないって、憶
えてはいるんだけど……』
「 Version 5.10 ( No.075 ) で簡単に触れてるけど、 FALSE が 0 なのは
決まってるけど、 TRUE は 0 以外だからどんな値か分からないわけ」
『それだといけないの？』
「 CToolBarCtrl::IsButtonEnabled() のリファレンス見てみて」
『あ、〈ボタンが有効な場合は 0 以外を返します。〉ってある』
「つまり CToolBarCtrl::IsButtonEnabled() が返すのは 0 以外の、特に決
まってない数字」
『それが TRUE の決まってない数字と同じになるとは限らない、だから比べ
ちゃいけない！』
「そゆこと。ちなみに TRUE と FALSE は Version 6.05 ( No.105 ) で出て
きたマクロのひとつ」
『あ！　だから全部大文字なんだ』
「 Visual C++  では WinDef.h で」

#define TRUE                1

『 1 は 1 なのね』
「でも、 TRUE が 0 以外ってのは決まりだから」
『 1 って決めつけて使っちゃいけない！』
「そゆこと。その辺は忘れずに」
『はーい。と、話を戻して』
「えーっと、そういうわけで、 CToolBarCtrl の参照を受け取って、そのメ
ンバ関数を使えば、本当のツールバーを直接操作できるってことだけど」
『でもさ、操作って感じじゃないよね』
「あ、そうだね。じゃあ今度は操作してみようか」

void CMainFrame::OnMenuTest() 
{
    // ツールバーコントロールを取得します。
    CToolBarCtrl &rcToorBarCtrl
        = m_wndToolBar.GetToolBarCtrl();
    // ボタンを淡色化。
    rcToorBarCtrl.Indeterminate( ID_FILE_NEW, TRUE );
}

『お、今度は CToolBarCtrl::Indeterminate() ってメンバ関数使ってる』
「これは、第２引数が 0 以外なら淡色にして、 0 なら普通の色にします」
『なんか、 TRUE と FALSE が逆っぽいような……』
「これは〈淡色表示にする〉メンバ関数、つまりネガティブな意味を持って
るから、他のポジティブな意味のメンバ関数と逆になっちゃうんだよね」
『分かりにくい……』
「この辺はウィンドウズの仕様だからねー」
『 MFC じゃないんだ』
「この CToolBarCtrl::Indeterminate() は、ツールバーのウィンドウに 
TB_INDETERMINATE ってメッセージ送ってるんだよ」
『あ、そっか、これもコントロールだからメッセージで操作するんだ』
「そゆこと。 CToolBarCtrl のメンバ関数のほとんどは、頭に TB_ が付い
てるツールバー用メッセージを送るだけのもの」
『だから、わけわかんなくてもそれは MFC のせいじゃないってことね』
「そういうこと。ま、そういうわけで、 TRUE を渡せば淡色表示にします」
『 ID_FILE_NEW をするのね。ビルドして実行！　お、左端の白いボタンが
無効になった！』
「ってわけ」
『……あれ？』
「どしたの火美ちゃん」
『このボタン、押せるよ？』
「うん、淡色表示にしただけだから」
『なにそれ。なんかサギっぽい！』
「このメンバ関数は淡色表示にするだけで、無効化とかとは関係ないから
ね。無効化はこうするんだけど……」

void CMainFrame::OnMenuTest() 
{
    // ツールバーコントロールを取得します。
    CToolBarCtrl &rcToorBarCtrl
        = m_wndToolBar.GetToolBarCtrl();
    // ボタンを有効化。
    rcToorBarCtrl.EnableButton( ID_EDIT_CUT, TRUE );
}

『うんうん、これなら分かりやすいね。さっきの IsButtonEnabled() と対
になってる感じだし』
「なんだけど……」
『なに、その煮え切らない言い方は』
「とりあえず試してみて」
『ほい。 ID は ID_EDIT_CUT だから切り取りボタンが……あれ？　なーん
か、一瞬色が変わってるっぽいんだけど、またすぐ淡色になっちゃう！』
「これは Version 9.06 ( No.167 ) に出てきた」

void CMainFrame::OnUpdateMenuTest(CCmdUI* pCmdUI) 
{
}

『あ、有効か無効か変えるメンバ関数！』
「そう、こっちの方が強いから、有効化や無効化ができないんです」
『そういう優先順位ってあるんだ……』
「ま、 MFC の場合は有効化・無効化用の機能がちゃんとあるんだから」
『そっち使えってことね』
「そういうこと……」

/*
    Preview Next Story!
*/
『なんかありがためいわくって気もするね』
「まーね、 MFC ってそいうとこあるから」
『ありがたいのと迷惑なのと、どっちが多い？』
「……それは難しいねたとえばステータスバー」
『ステータスバー？』
「これはツールバーと似た仕組みになってるから」
『解りやすいってこと？』
「というわけで次回」
＜ Version 9.13 ステータスバーを使ってみる！ ＞
『につづく！』
「まぁ、本音を言えば……」
『本音を言えば？』
「………………………………………………………………………………」
『言ってないし！』


////////////////////////////////////////////////////////////////////
/*                ２００２年９月１６日（月）の更新                */
http://www.kab-studio.com/

・ほとはー追加予定
　三人合体ホットハーブに３の２を追加予定。再び量産体制に入ります！
[ 三人合体ホットハーブ ]
http://www.kab-studio.com/Comic/HotHerb/


////////////////////////////////////////////////////////////////////
/*                          ご注意！！                            */

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.com/nikki2/
・購読登録を解除したいときにはこのページで行なってください。
＊http://www.mag2.com/m/0000012198.htm
＊http://www.pubzine.com/detail.asp?id=000590
・解除は自分で行なってください。
・バックナンバーはこれらのページにあります。
http://backno.mag2.com/reader/Back?id=0000012198
http://www.kab-studio.com/Freeware/index.html#MailMagazine


////////////////////////////////////////////////////////////////////
/*
    KAB-studio.h
      Weekly Mail Magazine.
      Written by Kaburaya Seiden.
      http://www.kab-studio.com/Info/MailMagazine/

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

