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

    KAB-studio.h


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

    送信日： 2001/10/01(Mon) No.126
    配信数： 3760 ( Mag2 + Pubzine )
＊    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
＊    発行元： Pubzine ( URL: http://www.pubzine.com/  ID: 590 )
*/
////////////////////////////////////////////////////////////////////

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

・１０月表紙壁紙！
　毎月恒例、表紙壁紙です。今月は運動会な火美ちゃん。まー１０月だし。
ダウンロードは CG Gallery にて。
[CG Gallery]
http://www.kab-studio.com/CG/Gallery/


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

2001/09/23 (Sun)
　３連休２日目は徹夜でゲーム(爆)。思い入れ強いのよ本田……。そんな感
じで眠かったり。エンジェリックレイヤーがいい感じ。同じ苗字の人。デジ
カメ欲しいねんなー。

2001/09/24 (Mon)
　１０月表紙壁紙完成！　床屋行ってから突貫で。今回は運動会。線が
ちょっと太かったかなー？　密かに IE6 にバージョンアップ、でもほとん
ど変わらず。

2001/09/25 (Tue)
　お仕事はエクセル関係。これからの１週間は定時帰宅が絶対(爆)。サブ
デッキがねー。今月の出費は AirH" でちょっと増。でもお給料もかなり
増(汗)。ザウルスのスタイラス無くす(泣)。ハレのちグゥの最終回はいい感
じ〜。最後もうまくまとめてくれたし。

2001/09/26 (Wed)
　近鉄優勝〜(泣)。西武、来年は、ね。お仕事はエクセル関係。なんかメイ
ンらしいですよわて。宿題もあったり(泣)。あぃまぃみぃ！最終回はきれい
にまとめてるけど、なんか謎。ＨＤハイブリッドデッキに新製品が！　欲し
い〜。

2001/09/27 (Thu)
　仕事は今度はパワポで GUI のイメージ作り。それとライブラリ。シスプリ
とたるとは最終回。シスプリは謎に良かったような。フルーツバスケットは
掛け値なしに良し。吹聴。休養明細で、休出とかが４万５千円アップ判明。
そして逆転サヨナラ満塁優勝ホームラン。

2001/09/28 (Fri)
　仕事はライブラリ＆テストアプリ作り。と油断してたら前のプログラムの
チェックをすることに。帰りに横浜でビックカメラやまんがの森やゲーセン
へ。ノワール最終回は悲しい結末。やっぱり今クール一番？　そしてゼミ合
宿の感想。もうあれから１年……。

2001/09/29 (Sat)
　ゴミの謎。買い物でストレス発散とか来週母が来たりとか。それよりなに
よりドロレス萌え〜(爆)。 ZOE 最終回良かったですー。今クール１番？　
逮捕しちゃうぞもなにげにいい感じ。今クールはなにげに粒ぞろいですー。


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

■　第二章　青年ふたり　−６−

「左さん、ちょっと退屈だなー」
　少年――先日舞と雅樹（と穂香）の前で氷づけの犬を瞬時に粉砕したあの
少年――は、右隣に座る男にそう言った。
「こっちからは攻めないよ。あくまで、向こうが動いてからだ」
　そう、左と呼ばれた男は答える。反射率の高いメガネを掛け、髪は短く
切って真ん中で分けている。常に笑んでいる口元と、その口元を見なくても
笑っているように見える目元が、一見子供っぽいように見せる。
　服装はごく普通のサラリーマンのようなスーツで身を包んでいるが、その
表情と服装のアンバランスさもあれば、それ以上に、膝の上にちょこんと
乗っている銀色の子猫が異様さを醸し出していた。
「天地生物科学工業は、動く気配がないな」
「この前の件で恐れを成したんだよ、きっと」
「それは困る、データが取れないな」
　メルセデス・ベンツのゆったりとした車内の中で、これまたゆったりとし
た受け答えを左はしていた。
「せっかちはいけないな」
「左さんはのんびりしすぎです」
「ま、負けるかもしれない戦いを進んでするもんじゃないさ」
「負けません」
　子猫が、体をもぞもぞと動かしたあと、立ち上がって大きくのびをした。
「ほら、あんまり殺気を出すからおハルさんが目を覚ましちゃったじゃない
か」
　「おハルさん」と呼ばれた銀色の猫は、左を見、少年を見てから、再び眠
りに入った。おハルさんの短くなく長くもないちょうどいい長さの毛は、銀
色をしていた。まるでシルクのようなその外観は高い気品を感じさせるもの
だった。
　それよりかは左は肌触りの方がいいと感じているから、すやすやと眠るお
ハルさんを優しく撫でた。
　そんな姿を見て、少年は「いい感じの人だなぁ」とは決して思わない。そ
れよりも「なんでこんな人と」という気の方が強い。避けられないこととは
いえ……。
　本当に、避けられない、のか……？
　おハルさんが顔を上げた。
「おいおい、また殺気を出したのか？　おハルさんはそういうのに敏感なん
だから、せめて俺達のいない所でしてくれよ」
「……いない所ならいいんですか？」
「いいよー、ぜひガンガンしてくれ」
　こういうわけのわからない性格が、少年をさらにいらつかせた。
　確かにいらつくのはダメだな……ダメだな……。
　少年は目を閉じて、精神統一をした。この人と一緒にいなきゃいけないの
は仕方のないことなんだと自分に言い聞かせた。今の自分があるのは誰のお
かげかを。
「……左さん」
「ん？」
「僕は、あなたの道具ですか？」
「おいおい」
「道具なんですか？」
　左は少し考えて、答えた。
「そうかもしれないな」
　少年の目が、開く。
「けれど、得てして優秀でない使い手は優秀な道具に振り回されるもんだ」
　左は口だけを笑んで見せて、言った。
「だろ？」
　少年は、精神統一など忘れて憮然とした表情をするだけだった。
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
『ねー、〈今クール〉って〈コンクール〉の誤植？』
「違うと思う……〈クール〉っていうのは時間の単位で、１３週のこと」
『１３週ってすごく中途半端……』
「に見えるでしょ。でも４倍して５２週、１週間は７日だから、全部で」
『３６４日、あ、ほとんど１年』
「だから区切りはいいんだよね。１３って数字はトランプと同じだし」
『……関係ないよね』
「あるよ？　トランプは占いのための物だったんだから」
『げ、そーゆーもんなんだ』
「マークも４つあるから全部で５２枚、ってのも同じ」
『４つ、１〜３月、４〜６月、７〜９月、１０〜１２月、だっけ』
「そうそう。第１クールとか呼ぶかな。経済だと〈第１四半期〉とか」
『うわ、真面目な感じ！』
「あとアメリカだと２クールで１シーズンとか呼ぶけど」
『ＥＲとかそうだよねー』
「で、このメールマガジンが年５０号なのは」
『毎週発行で、２日休むから、なんだ』
「なんかでも、わざと５０号にするために年２回休んでるみたいだけど」
『変……』
http://www.kab-studio.com/
_______________________________________________________________[KCM]


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

　Version 7.06
四角な構造体

「前回はリソースっていうものについて紹介しました」
『ようするに、ウィンドウズの中に作られて、ハンドルが返ってくるのがリ
ソース、でいいんでしょ？』
「そ。ちょっとあいまいなものだしね」
『あいまいって変なのー』
「で、この〈リソース〉は、ウィンドウズの仕組みの話」
『そりゃそーね』
「リソースもそうだし、デバイスコンテキストや GDI もウィンドウズ関係
のことだね。で、この Ver 7 では、同時に言語の話もしていきます」
『言語って、 C++ 言語ってこと？』
「そういうこと。 MFC では、デバイスコンテキストとかを使いやすくする
ために、いろんな C++ 言語の機能を使ってるんです」
『変数がなくなったら自動的に消されちゃうってアレ？』
「そう、あれ。そういう部分も少しずつ教えてくからね」
『……それは覚悟しろってこと？』
「いや、まぁ、別にペース上げるわけじゃないから、混乱しないでってこ
と。実際、今回は、両方いっぺんに憶えてもらうし」
『げげ』
「まずは、ウィンドウのサイズについて。ウィンドウのサイズは 
GetWindowRect() って API を使います」

void CAnimeDlg::OnBDraw() 
{
    RECT stRect;
    ::GetWindowRect( GetSafeHwnd(), &stRect );
    TRACE
        ( "%d, %d, %d, %d\n"
        , stRect.left, stRect.top
        , stRect.right, stRect.bottom );
}

『……なーんとなく分かるけど、 RECT ってのが謎』
「 RECT は〈構造体〉っていうのの一種」
『構造体？』
「構造体っていうのは、クラスの機能限定版……みたいなもの」
『うっわ、すっげー歯切れ悪！』
「その理由はあとでね。 RECT を見てみると、こういうふうになっていま
す」

（ Windef.h より抜粋）
typedef struct tagRECT
{
    LONG    left;
    LONG    top;
    LONG    right;
    LONG    bottom;
} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;
（抜粋ここまで）

『？？？』
「これはちょっと分かりにくいよね。シンプルに書くと」

struct tagRECT
{
    LONG    left;
    LONG    top;
    LONG    right;
    LONG    bottom;
};

「クラスみたいでしょ」
『でもメンバ関数ないね』
「そう、構造体は〈メンバ変数しかないクラス〉って考えてもらうといいか
な」
『メンバ変数だから stRect.left ってできるんだ』
「そゆこと。 LONG 型は Ver 6.03 ( No.103 ) でやったからいいね」
『ようするに long 型ね』
「で、これに typedef を組み合わせてるのが上の。だから」

typedef tagRECT RECT;

「とかと同じ」
『でもさ、 class はそういうのしてないよね。 AnimeDlg.h 見ても』

class CAnimeDlg : public CDialog
{
// 以下略。

『って感じだし』
「この辺も、さっきの〈クラスの機能限定版〉とかと一緒に説明するから。
っていうか、この辺は複雑なんだよねー」
『げげ』
「だから、あとでまとめて説明するから。とりあえず今は、構造体は〈クラ
スもどき〉って憶えておいて」
『はーい』
「で、 RECT は API の方で用意してくれてる構造体で、とにかく【四角】
の情報を格納するための型」
『たとえばウィンドウの四角？』
「そう！　もう一度メンバ変数を見てみて」

struct tagRECT
{
    LONG    left;
    LONG    top;
    LONG    right;
    LONG    bottom;
};

「最初ふたつ、 left と top は、四角の左上の X 座標と Y 座標」
『 X 座標とかって、 Ver 7.01 ( No.121 ) で SetPixel() に使ったのと同
じ？』
「それと同じ。たとえば GetWindowRect() でウィンドウの四角を取って、
その RECT::left と RECT::top を SetPixel() に渡せば」
『ウィンドウの左上隅に点が打てると』
「そゆこと。残りふたつ、 RECT::right と RECT::bottom は、四角の右下
隅の X 座標と Y 座標」
『あれ？　四角って言ったら４つありそうだけど』
「ううん、左上隅と右下隅さえあれば、右上隅と左下隅は分かるから。右上
隅の X 座標は右下隅の X 座標と同じだし、右上隅の Y 座標は左上隅の Y 
座標と同じだし」
『そういえば』
「だから左上隅と右下隅だけ。あ、ちなみに RECT は rectangle って英語
の略。 rectangle は〈長方形〉って意味だから」
『ベタベタなのね』
「で、 GetWindowRect() って API は第１引数で指定したウィンドウの左上
と右下を、第２引数で渡した RECT 構造体に格納します」
『戻り値で返すんじゃないんだね』
「構造体を戻り値で返すのは大変なんだよね」
『でもクラスは返すよね。 CString とか』
「その辺も構造体とクラスの微妙な関係ってとこかな」
『なんか、聞けば聞くほど変な感じ……』
「ま、それはそうなんだけどね。話を戻して、 GetWindowRect() の第２引
数には RECT 型変数のアドレスを渡します」
『そのポインタを通して変数に座標を入れてくれるわけね』
「あと、 GetWindowRect() にも MFC 版があります。 MFC 版は CWnd のメ
ンバ関数 CWnd::GetWindowRect() 」

void CAnimeDlg::OnBDraw() 
{
    RECT stRect;
    GetClientRect( &stRect );
    TRACE
        ( "%d, %d, %d, %d\n"
        , stRect.left, stRect.top
        , stRect.right, stRect.bottom );
}

『さっきのは CWnd::GetSafeHwnd() のウィンドウハンドル渡してるんだか
ら、これと結果は同じになるわけよね。あ、そういえば試してなかった。ビ
ルドして実行、【描く！】ボタンっと』

206, 81, 595, 492

『これがウィンドウの四角？』
「そう、画面の左上隅からの位置。試しに、ダイアログ色々なとこに置いて
から【描く！】ボタン押してみて」
『ぽち。あ、ちゃんと値が変わってる。左上に持ってけば減るし、右下に
持っていけば増えるし。……』
「どしたの？」
『このダイアログ、画面の左上からはみ出させちゃったらどうなるの？』
「やってみ？」
『ほい。あ、マイナスになった！』

-42, -16, 347, 395

『おー、なんかすごい』
「あと、ウィンドウのサイズは変わってないのを確認してあいて」
『どゆこと？』
「 right - left 、 bottom - top の値は、ダイアログをどこに置いても同
じでしょ」
『 389 と 411 、同じ。あ、これってダイアログのサイズなんだ！』
「そゆこと。縦のサイズと横のサイズね。ウィンドウのサイズを変えな
きゃ、これはずっと一緒だから」
『ウィンドウのサイズ変えたら、これも変わるの？』
「もちろん。そのための API なんだもの」
『ほー。ん？　そのための？』
「そう。実は、ウィンドウの位置関係の API ってこれくらい。だから、た
とえば〈ウィンドウの画面上の位置〉とか〈ウィンドウのサイズ〉を取得す
るのにもこの API 使うから」
『便利な API とか揃ってないの？』
「ないんだよねー。特に API は、必要最小限のものしか用意しないってい
う方針だから」
『確かに、ウィンドウの四角が分かれば、他も分かるんだろうけど……』
「最後に、もうひとつ似たような API 、 GetClientRect() を紹介します」

void CAnimeDlg::OnBDraw() 
{
    RECT stRect;
    ::GetClientRect( GetSafeHwnd(), &stRect );
    TRACE
        ( "%d, %d, %d, %d\n"
        , stRect.left, stRect.top
        , stRect.right, stRect.bottom );
}

『うわ、ほとんど同じ……』
「 API が GetClientRect() になっただけだね。〈クライアントエリア〉
って憶えてる？」
『 Ver 7.02 ( No.0122 ) でやったのだよね。タイトルバーとかを除いた部
分ってゆーの』
「そうそう。この GetClientRect() はそのクライアントエリアのサイズを
取得するための API 」
『サイズ？』
「試してみると分かるかも」
『ほい』

0, 0, 383, 386

『あ、左上の座標が 0 だ』
「クライアントエリアはウィンドウの中の一部だから、位置は関係ないんで
サイズだけ返ってきます」
『やっぱウィンドウよりちょっと小さいね』
「ウィンドウに描画する時にはクライアントエリアに描くことになるだろう
から、こっちの方が使うこと多いかな？」

/*
    Preview Next Story!
*/
『それにしても、 API って親切じゃないってゆーか』
「もっと種類多い方がいい？」
『その方が便利じゃない？』
「憶える API 増えるけど」
『…… API って全部でいくつくらいあるの？』
「いや、何百ってあるから数え切れないけど」
『な、何百ぅ！？』
「というわけで次回」
＜ Version 7.07 構造体とクラス ＞
『につづく！』
「まだ増え続けてるし、メッセージとかも入れると……」
『あ、あたし降りる〜！！』


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

・更新なし。
　所用があることもあってこの日は更新なし。でもその次の週にはホット
ハーブ更新します！！


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

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
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 - 2001 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com
*/
////////////////////////////////////////////////////////////////////




