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

    KAB-studio.h


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

    送信日： 2001/09/24(Mon) No.125
    配信数： 3770 ( 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/nikki2/

2001/09/16 (Sun)
　会社を前にしてなんとなく憂鬱ながらも、ぷらとわ書いたりホットハーブ
描いたり。そういえば２週間ぶりの日曜日……。テレビは粒ぞろい。そして
謎の印刷用紙、そして DVD デッキ。今は待ち時？

2001/09/17 (Mon)
　デバッグ＆ライブラリ作成。 1G くらい WriteFile() するくらい我慢し
なさい WinNT 。 intuos タブレットに新型登場。まぐプレに表紙追加。そ
してプリンタ用紙のサイズの取得方法判明。

2001/09/18 (Tue)
　今日はライブラリ作り中心。文字コードとかの互換性を乗り越えるものが
できそう。ホントの目的は CSV だけどね。リウィ最終回、押さえるとこは
押さえててなかなかいい感じかも。

2001/09/19 (Wed)
　客先に持ってく資料を突貫工事。っつーか全部わてが作ってるような。そ
して客先へ。忙しくなりそうな予感がひしひしと。最近ごはん食べ過ぎ。 
Java メルマガ第２号配信。

2001/09/20 (Thu)
　エクセルで図表作り。モチベーション下がりまくり……。プログラマーと
データベースビルダーってのはやっぱ違うのかねぇ。ホットハーブちょっと
だけ。ポケモン終わっちゃいそう……。

2001/09/21 (Fri)
　引き続きエクセル。なんかわてがメインっぽい……。帰りに横浜寄って
バーチャ４したり。まほろまてぃっくいい感じ〜でも DVD 買うかは不明。 
AirH" は速度にムラがあるかな？

2001/09/22 (Sat)
　毎年恒例ワールドＰＣエキスポ！　でも今年はウィンドウズぺけぴーくら
いしか注目株ない？　それに、去年盛況だったカラフル系が今年は全くない
し、変わり種と言ったら高木産業くらい（爆）。そんな雰囲気を写真付きで
お届けします。


////////////////////////////////////////////////////////////////////
/*                         風雅、舞い                             */
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.05
ブラシとリソース

「今回は前回の続き。前回は GDI のひとつ、ペンについて見てみました」
『交換したりして面倒なんだよね』
「交換関係はもうどうしようもないかな。今回最初は、まずもうひとつの 
GDI 、【ブラシ】について」
『ブラシって毛玉とか取るあれ？』
「んー、それよりエアブラシとか」
『ああ、そっちのね』
「同じなんだけどね。 brush っていうのは〈はけ〉って意味で、ペンキと
か塗る時の、幅広の刷毛を思い出してくれるといいかな」
『看板とか描きそうなヤツね』
「簡単に言えば、輪郭を描くためのがペン、塗り潰すためのがブラシ。前回
楕円を描いた時に、中は白のままだったでしょ」
『ってことは、その色を変えるのがブラシなんだ』
「そゆこと。まずは例から」

void CAnimeDlg::OnBDraw() 
{
    HDC hCanvasDC = ::GetDC( m_cCanvasStatic.GetSafeHwnd() );

    HPEN hPen = ::CreatePen( PS_SOLID, 10, RGB( 255, 0, 0 ) );
    HPEN hOldPen = (HPEN)::SelectObject( hCanvasDC, hPen );

    HBRUSH hBrush = CreateSolidBrush( RGB( 0, 0, 255 ) );
    HBRUSH hOldBrush = (HBRUSH)::SelectObject( hCanvasDC, hBrush );

    ::Ellipse( hCanvasDC, 10, 10, 80, 50 );

    ::SelectObject( hCanvasDC, hOldBrush );
    ::DeleteObject( hBrush );

    ::SelectObject( hCanvasDC, hOldPen );
    ::DeleteObject( hPen );
}

『うお、長い！　あ、でも新しいのは CreateSolidBrush() とかくらいだ
ね』
「そだね。 CreateSolidBrush() でブラシを作って、あとはデバイスコンテ
キストでの交換とかは同じ」
『ブラシも、ペンみたくひとつしか持てないのね』
「そういうこと。 GDI にはペンやブラシも含めて７種類あって、ひとつの
デバイスコンテキストが持てるのはその７種類でそれぞれひとつずつ」
『ペンで塗り潰したりはできない？』
「できません。塗り潰しにはブラシ、って決まってるから」
『なんか融通きかないのね……』
「あと、 CreateSolidBrush() はベタの塗り潰し用のブラシ。たとえば」

    HBRUSH hBrush = CreateHatchBrush( HS_CROSS, RGB( 0, 0, 255 ) );

「ってすると」
『網目模様になった！』
「こういうのは、簡単な図形を描くのに便利かな」
『でも、これって結構テキトーだよね』
「それはしょうがないかな。凝ったのを描くとなると大変になるからねー」
『ま、こういうの使えば少しはバリエーション出てくるんだ』
「だね。実際、僕の方で全部紹介しきれないし、いっぺんに憶えきれないか
ら、自分で暇を見つけて色々試してもらうしかないかな」
『つまりどんなことができるかちゃんと調べとけってことね』
「そういうこと。ま、主なものはちゃんと紹介するけどね」
『主なものねー』
「さて、今回はまた違ったことについて紹介します」
『あら、スペースが余ったと思ったら』
「今回教えるのは【リソース】について」
『へ？　リソースなんてもう知ってるよ。ダイアログとかバージョン情報と
かのことでしょ』
「そこが難しいところ。今から教えるリソースは、それと同じとも言える
し、違うとも言えるし」
『なんか微妙な言い回し……』
「このリソースは、簡単に言えば〈ハンドルが指し示す実体が置かれてる場
所〉のこと」
『？？？』
「ウィンドウとかデバイスコンテキストとかペンとか、ウィンドウズシステ
ムの中に作られるでしょ。その作られる領域とか、そこに置かれてるものが
【リソース】なんです」
『ようするに、ハンドル関係のものってことでいい？』
「うん、それでだいたい合ってるかも。っていうか、この辺はあいまいで
ねー」
『なのねー』
「一応、ウィンドウとかデバイスコンテキストとかペンとかそのものをリ
ソースって思った方がいいけど」
『けど？』
「〈リソースの枯渇〉って言って、こういったウィンドウとかを作りすぎる
ともう他に作れなくなることがあるんだよね」
『前に、リソースって【資源】って意味だって言ってたよね』
「だね。ハンドルはポインタって言ったよね」
『うん、前回』
「ウィンドウズシステムの中に、ウィンドウとかを作るためのメモリ領域が
あって、ウィンドウを作るときとかは、そのメモリ領域を必要なだけ確保し
て使うってイメージ」
『そのアドレスがハンドルってこと？』
「そういうこと。このメモリ領域の場所そのものがリソース、って考えると
いいかなぁ」
『ってことは、もう空き場所がなくなった状態が〈リソースの枯渇〉ってこ
とになるの？』
「そういうことだね。ま、この辺は口で言っても分かりにくいから、見てみ
ましょう。まずスタートメニューの【アクセサリ】−【システムツール】か
ら【リソースメーター】を実行して」
『ほい。タスクバーの端にアイコンが出たけど』
「それをダブルクリック」
『ダイアログが出たよ。システムリソース : 残り 44% とか』
「このゲージが、リソースの全容量ってとこかな」
『ってことは、ウィンドウとか作ると減ってく？』
「減ってきます。というわけで試してみましょう」

void CAnimeDlg::OnBDraw() 
{
    for( int iF1 = 0; iF1 < 350; iF1++ )
    {
        ::CreatePen( PS_DOT, 1, RGB( 255, 0, 0 ) );
    }
}

『うわー、ペンを３５０個も作るの？』
「そ。このくらい作らないと見た目的に分からないからね」
『そんじゃ実行っと。うわ、激減！』
「もっとよく見て？」
『えっと、システムリソースと GDI リソースが減って、 User リソースは
減ってないね』
「リソースには３種類あって、全体の管理をするシステムリソース、ウィン
ドウとかを置く User リソース、 GDI を置く GDI リソースの３つがありま
す」
『システムリソースって他のも含むってこと？』
「そうだね、 GDI リソースを減らすものを作ったらシステムリソースも減
るし、同じように User リソースを減らすものを作っても」
『システムリソースが減るってわけね』
「でも、システムリソースだけ減るのもあるから」
『たとえば？』
「 Ver 5.15 ( No.080 ) でやった、ファイルを開くときの」
『 CreateFile() で開いて、 HANDLE で受け取るんだよね。そっか、これも
ハンドルだから、リソースになるんだ』
「こういうのはシステムリソースだけ減るから」
『それにしても、こうやって目に見えて減るのって不安ね……』
「もっと減らしてみて」
『げ！　なんか不安なことさせるわねー』
「あと数回なら大丈夫だから」
『ほいほい。ぽち、ぽち……あ、ダイアログ出た！』

９０％以上のシステムリソースが使用されています。
使用していないプログラムを終了し、システムリソースを解放しないと、
コンピュータが応答しなくなる可能性があります。

『げげ！　こういうのって不安……』
「これは実際ぎりぎり。これ以上使うと」
『リソースが枯渇しちゃうわけね。あれ？　このマシンってメモリいくつ
入ってるの？』
「２枚」
『そうじゃなくってー』
「１Ｇは入ってるよ」
『なのにこんなに簡単に枯渇しちゃうんだ』
「そこがポイント。メモリに置いてあるって言っても、最初にウィンドウズ
システムが確保してる領域が小さいから」
『メモリいくら増やしてもダメ？』
「そういうことなんだよねー。これは結構ネック」
『それより、この危なっかしい状況をなんとかして〜』
「アプリ終了すれば大丈夫だよ」
『ほい。あ、ゲージが元に戻った』
「アプリを終了すれば、たいがいのリソースは解放されるから」
『……解放されないのもある？』
「アプリが使うんじゃなくて、ウィンドウズ全体で使うのとかはね」
『もしそういうのを、こういう感じに作りまくったら……』
「落ちるね、ウィンドウズが」
『そんな簡単に……』
「それに、終了するかしないかは」
『ユーザーしだい！　そっか、前回言ってた〈削除しなきゃ〉っていうのは
こういう理由なんだね』
「そういうこと。もし削除しなかったらリソースを使いまくちゃってやばい
ことになるから」
『だから、ちゃんとまめに削除しなきゃいけないわけねー』
「最後に、今回教える前までのリソースと、今回のリソースの関係」
『今の所は全然関係ないよね』
「そうだねー。今回より前のリソースは、 MSDN の Resources ってページ
に書いてある、ダイアログとかバージョン情報とかの」
『うん、これはおなじみのだね』
「で、今回教えたのは MSDN の Handles and Objects ってページの」
『っつーかどっちも英語で難しい……』
「こういうふうに分けられて書かれてるから、実際には別物って考えた方が
いいかも」
『別物ねー』
「でも」
『でもぉ？』
「 Resources の方、全部 Create なんたらでウィンドウズシステム内に
作って、ハンドルとして操作するんだよね」
『そっか、そう考えれば Handles and Objects の方とも言えるんだ。こっ
ちのに含まれてるしねー』
「実際、この辺は難しいところかもね。暇があったら英文を読み下してみ
て」
『これって結構大変なんじゃ……』

/*
    Preview Next Story!
*/
『水希ちゃんって英語すらすら？』
「全然、全然」
『のわりには MSDN すらすら読んでるじゃない』
「英語は分からなくても、プログラミング用語は分かるし」
『そういう方面から攻めるってこと？』
「自分の得意分野からっていうのが憶えやすいかな」
『そういうコツも必要なのね』
「というわけで次回」
＜ Version 7.06 四角な構造体 ＞
『につづく！』
「ま、一番読みやすいのはソースコードそのものだけどね」
『……それは笑うとこ？　それとも引くとこ？』


////////////////////////////////////////////////////////////////////
/*              ２００１年１０月１日（月）の更新予定              */
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
*/
////////////////////////////////////////////////////////////////////




