////////////////////////////////////////////////////////////////////
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝

初心者でもカンタンに稼げるソフトです。

詳しくは、HPをご覧ください。

http://af1.mag2.com/m/af/0000008658/001/s00000004435001/010

＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


    (C)KAB-studio 1999 - 2007 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz

    送信日： 2007/01/08(Mon) No.389
    配信数： 1671
    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
// NEW!!
http://www.kab-studio.biz/index.html

2007/01/08 (Mon)
　ほとはー外伝３にP.86を追加！
[ 三人合体ホットハーブ 外伝３ 【ワタシ の キロク】 ]
http://www.kab-studio.biz/Comic/HotHerbA3/index.html

2007/01/08 (Mon)
　#pragma twice ホームページ版にアーカイブ追加！
17.26 スマートポインタの自動解放
17.27 スマートポインタの自動解放、の続き
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html


////////////////////////////////////////////////////////////////////
// ちょお普通な日記
http://www.kab-studio.biz/nikki2/index.html

2006/12/24 (Sun)
　フットサルでふくらはぎに痛みが。いつもの更新とアニメ感想書き。
ほとはー外伝３描き。今年を振り返る８月。夏コミとPHP。

2006/12/25 (Mon)
　ほとはー外伝３クリスマスイラスト描き。今年を振り返る９月。PHPと
プール。そしてジョギング。

2006/12/26 (Tue)
　ダメダメ。夏コミ本まとめ。今年を振り返る１０月。完全駄目な月。

2006/12/27 (Wed)
　目覚ましで起きられない。年賀状描き。年賀状に気合いを入れる理由。
今年を振り返る１１月。まったりと色々と。

2006/12/28 (Thu)
　ほとはー外伝３のネーム切りで止まる。夜に飲み。１２時半に帰宅して
以上。

2006/12/29 (Fri)
　布団敷かずに寝てしまう。ほとはー外伝３描き。今年を振り返る１２月。
今年は面白い年だった。そして年末年始のアニメ。

2006/12/30 (Sat)
　こまごまとしたことをいろいろと。Brita リクエリ購入。年末年始の
予定。

2006/12/31 (Sun)
　朝８時まで起きてた。仮眠取ってから冬コミへ。夏コミの申し込みをしな
い予定。トップイメージをお正月バージョンに差し替え。２００６年と、
２００７年の抱負。

2007/01/01 (Mon)
（作者里帰りのためお休み）

2007/01/02 (Tue)
（作者里帰りのためお休み）

2007/01/03 (Wed)
　三が日。

2007/01/04 (Thu)
　１１時過ぎ起き。洗濯とか細かいことを。万歩計で散歩開始。

2007/01/05 (Fri)
　風邪ひいたっぽい。胃が痛んで下痢して戻して寝まくる。このタイミング
で風邪ひいたのはかえって良かった？

2007/01/06 (Sat)
　まだ本調子じゃないので基本まったり。ぷらとわ１話くらい。


////////////////////////////////////////////////////////////////////
// かぶろぐ。
http://d.hatena.ne.jp/kab_studio/

2006/12/24 (Sun)
http://d.hatena.ne.jp/kab_studio/20061224
起きた。
[KAB-studio]ぷらとわ追加。
[KAB-studio][ほとはー]ほとはー外伝３ P.85
[link]Wiiバーチャルコンソール（PCエンジン）ラインナップ追加
[買]げんしけん9巻
[アニメ]「牙」 第39話「開眼」
[アニメ]おねがいマイメロディ〜くるくるシャッフル！〜 
　第39話「声がとどいたらイイナ！」
[アニメ]乙女はお姉さまに恋してる 第12話「ラストダンスは永遠に」(終)
[アニメ]くじびきアンバランス 第12話「ゆめをかなえてみよう。9点」(終)
[アニメ]Gift 〜eternal rainbow〜 第12話「永遠の虹」(終)
[アニメ]ウィンターガーデン(後編)
[アニメ]ローゼンメイデン・オーベルテューレ(後編「虚飾」)

2006/12/25 (Mon)
http://d.hatena.ne.jp/kab_studio/20061225
起き。
[買]AmazonでPS3が売れ残る日。
[絵][KAB-studio][ほとはー]ほとはー外伝３クリスマスイラスト！
[アニメ]金色のコルダ 第13話「かけがえなきメロディ」
[アニメ]夜明け前より瑠璃色な Crescent Love 第12話「お姫様と…」(終)
[アニメ]ギャラクシーエンジェる〜ん 
　第13話「出現！ワルワルワる〜ん」(終)

2006/12/26 (Tue)
http://d.hatena.ne.jp/kab_studio/20061226
起きた……。
[link]Wiiバーチャルコンソール追加
[アニメ]Pumpkin Scissors 第13話「粗野にして美味」

2006/12/27 (Wed)
http://d.hatena.ne.jp/kab_studio/20061227
起きた。
[買][装備]文具とか。
[買]コミックスとか。
[アニメ]アップルシード
[アニメ]DEATH NOTE 第12話「恋心」
[アニメ]ネギま！？ 第13話「敵かどうかと言うことよりも
　マスターの邪魔かどうかが問題なのです」

2006/12/28 (Thu)
http://d.hatena.ne.jp/kab_studio/20061228
起きた
帰ってきた。
[きらら]まんがタイムきららCarat 2007年2月号
[アニメ]武装錬金 第13話「死の胎動」
[アニメ]武装錬金 第14話「キミは誰だ？」

2006/12/29 (Fri)
http://d.hatena.ne.jp/kab_studio/20061229
起きた。
[アニメ]今年のアニメ私的ベスト10

2006/12/30 (Sat)
http://d.hatena.ne.jp/kab_studio/20061230
起きた。
[KAB-studio][ほとはー]年末年始の予定。
[買][装備]Brita リクエリ
[食]とろとろ肉そば てんか 油そば
[link]sakusaku Ver.3.0

2006/12/31 (Sun)
http://d.hatena.ne.jp/kab_studio/20061231
あ”あ”〜。
寝ちゃってたー。
[C71]コミケ行ってきた、けど……。
[絵][KAB-studio][ほとはー]新年のに差し替え

2007/01/01 (Mon)
http://d.hatena.ne.jp/kab_studio/20070101
（作者里帰りのためお休み）

2007/01/02 (Tue)
http://d.hatena.ne.jp/kab_studio/20070102
（作者里帰りのためお休み）

2007/01/03 (Wed)
http://d.hatena.ne.jp/kab_studio/20070103
帰ってきました。
[買][装備]万歩計購入

2007/01/04 (Thu)
http://d.hatena.ne.jp/kab_studio/20070104
起きた。
[アニメ]おねがいマイメロディ〜くるくるシャッフル！〜 
　第40話「初笑いできたらイイナ！」
[アニメ]ショート DE アニメ魂 第1回(新)
[アニメ]ネギま！？ 第14話「科学理論も、魔法相手じゃ
　あってないようなものです、はっきり言って」

2007/01/05 (Fri)
http://d.hatena.ne.jp/kab_studio/20070105
起きたー。
[病気治療]風邪っぽい。
徹ゲー休む。
[アニメ]カレイドスター スペシャルセレクション 
　第1話「初めての！すごい！ステージ」(新)
[アニメ]セイントオクトーバー 
　第1話「ロリ誕生！少女が超ゴスロリに！」(新)

2007/01/06 (Sat)
http://d.hatena.ne.jp/kab_studio/20070106
起きた。
[アニメ]デルトラクエスト 第1話「リーフ冒険の旅へ」(新)
[アニメ]彩雲国物語 第32話「女にも二言なし」
[アニメ]おとぎ銃士 赤ずきん 第27話「魔女の城」
[アニメ]ふしぎ星の☆ふたご姫 Gyu! 
　第40話「新春カートレース☆お年玉は誰の手に!?」
[アニメ]コードギアス 反逆のルルーシュ 第12話「キョウトからの使者」


////////////////////////////////////////////////////////////////////
// Ajaxでエロゲーを作るブログ
http://d.hatena.ne.jp/AjaxEroge/

（今週はお休みです）


////////////////////////////////////////////////////////////////////
// 風雅、舞い
http://www.kab-studio.biz/Novel/Fuga/index.html

■　第十五章　濁る澱み、清らかな血溜り　−１７−

「忘れ物ない？」
　少年はうなずき、廊下をついてくる。
「お代はすでに頂いておりますから。でもよろしいんですか？　泊まってい
かれてもよろしいのに」
　舞の前を歩く女将が尋ねてくる。
「そうしたいところなんですけど、待たせちゃっているんで……」
　舞自身、しどろもどろの回答だなと思う。嘘をついている、というのもあ
れば、正直、このまま泊まりたいという気持ちもある。玄関まで来ると外の
寒気が感じられて、本当に智子を置いて泊まりたいとさえ思った。靴を履き
ながら、襟元を締める。
「よろしければこちらをどうぞ」
　女将が三つ折りのパンフレットを二人に渡す。それはこの温泉街とその周
辺の地図だった。
「まだこちらにご逗留なさるのなら、そちらを参考になさってください」
「あ、はい……」
　裏面には広域地図が描かれていた。そこにはゴルフ場や、さらに山奥には
スキー場があった。
「ねぇ、この中にある？」
　少年は首を振る。
「……僕、知らないんだ」
「あ、そかごめん」
「でも……たぶんこの辺だと思う」
　少年が指さした所は、温泉街からは近いものの、山以外他にない場所だっ
た。
「ここね……これも先生の役に立つかな。あ、ありがとうございます、頂い
ていきますね」
　舞は温泉のお礼も兼ねてお辞儀をし、少年もつられて頭を下げる。
「いえいえ、それではまたの起こしをお待ちしております」
「はい、温泉ありがとうございました」
「……うん、ありがとうございました」
　二人はもう一度頭を下げて、狭い玄関を出た。体が温かい分、顔に当たる
風がいっそう冷たく感じられた。
「……あれ？」
　舞は違和感を感じて、一瞬だけ後ろを向く。だが、その違和感の理由に、
思い当たらなかった。
                                                              (続く)

////////////////////////////////////////////////////////////////////
// JavaA2Z
http://www.kab-studio.biz/Programing/JavaA2Z/index.html

■追加・更新単語

（今週の追加はありません）


////////////////////////////////////////////////////////////////////
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝

初心者でもカンタンに稼げるソフトです。

詳しくは、HPをご覧ください。

http://af1.mag2.com/m/af/0000008658/001/s00000004435001/010

＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
////////////////////////////////////////////////////////////////////
// #pragma twice
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

　Version 18.02
計算機アプリを API だけで作る

「前回は計算機アプリ用プロジェクト、 NewCalc プロジェクトを作成して、
プログラムも書き込みました」
『でもまだ完成してないなんて……』
「そう、なぜかというと Version 8.06 ( No.148 ) で説明したダイアログの
【リソーススクリプト】を作ってないから」
『あ、そういえばそんなものが……』
「というわけで、まずはリソーススクリプトを作ります。メニューの
【ファイル】−【新規作成】で、下から２番目に【リソース スクリプト】が
あるからそれを選択してください。ファイル名は NewCalc.rc にしてくださ
い。 OK ボタンを押すと」
『リソースのフォルダが出たよ』
「この【NewCalc.rc】フォルダを右クリックして【挿入】選んで、表示され
た【リソースの挿入】ダイアログで【Dialog】を選んで【新規作成】ボタン
を押してください」
『ほい。ダイアログ作られたよ、いつもの OK ボタンと キャンセルボタン
があるやつ』
「まずこのダイアログの ID を IDD_MAIN に変更します。ダイアログを
ダブルクリックして、 ID を IDD_MAIN に変えてください」
『ほい』
「次に、このダイアログに以下のコントロールを追加してください」

・エディットボックス
　・IDC_E_LEFT
　・IDC_E_RIGHT
　・IDC_E_ANSWER
・ボタン
　・IDOK         （OK）
　・IDC_B_EQUAL  （=）
・スタティック
　・IDC_STATIC   （+）

「（OK）（=）（+）は、ボタンに表示する文字列、つまりキャプションを
【OK】にしてください、っていう意味です」
『スタティック、ってただ文字列表示するだけのだよね』
「そう、だから ID は IDC_STATIC ね。で、計算機アプリだから、こんな感
じに並べるといいかな」

┌──────────────────────────────┐
│                                                            │
│ ┌─────┐   ┌──────┐ ┌─┐ ┌──────┐  │
│ │IDC_E_LEFT│ + │IDC_E_RIGHT │ │= │ │IDC_E_ANSWER│  │
│ └─────┘   └──────┘ └─┘ └──────┘  │
│                                                            │
│                                                ┌──┐    │
│                                                │OK  │    │
│                                                └──┘    │
│                                                            │
└──────────────────────────────┘

「【=】と【OK】はボタン、 + はスタティック、それ以外は
エディットボックスです」
『ほいほいほいと』
「これで完成。保存してビルドすれば実行できるよ」
『ビルドして実行っと』
「左のふたつのエディットボックスに整数値を入力して、【=】ボタンを押
せば右の IDC_B_EQUAL エディットボックスに計算結果が出力されます」
『お、ホントだ！　これで Version 3.11 ( No.036 ) と同じのができた、
ってことなんだね』
「そういうこと。あのときは MFC を使ったけど、今回は API だけで
プログラムしています。今回はその解説をします」
『はーい』
「まずは WinMain() 関数から」

// WinMain() 。
int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{

「 Version 8.01 ( No.143 ) で説明した、一番最初に呼ばれる関数です」
『これは前の章でも使いまくってるからわかるよー』
「だね。で、この関数の中でダイアログを作成します」

    int iRet
        = DialogBox
            ( p_hInstance
            , MAKEINTRESOURCE( IDD_MAIN )
            , NULL
            , DialogProc
            );

「 Version 8.07 ( No.149 ) で説明した、 DialogBox() という API で
ダイアログを表示します。ちなみにこの API は、ダイアログが閉じるまで
は返らないから」
『それってつまり、ダイアログが閉じたらこの関数から返ってきて、 
WinMain() 関数から抜けてアプリ終了、ね』
「そういうこと。さて次に、この API の第4引数で渡している DialogProc
が、 Version 8.08 ( No.150 ) で説明したダイアログプロシージャになり
ます」
『イベントの度に Windows から呼び出される関数になるわけね』
「そう、イベント、つまり〈ボタンを押した〉といった操作が行われるたび
に DialogProc() 関数が呼び出されます。そして、どういう操作が行われた
のか、という情報が引数で渡されてきます」
『それがメッセージってことだよね』
「そういうこと。で、今回はボタンを押す、っていうイベントしか処理しな
いので、 Version 8.09 ( No.151 ) で説明した WM_COMMAND メッセージだけ
を処理します」

// ダイアログプロシージャ。
BOOL CALLBACK DialogProc
    ( HWND p_hDlgWnd
    , UINT p_uiMessage
    , WPARAM p_wParam
    , LPARAM p_lParam
    )
{
    if( p_uiMessage == WM_COMMAND )
    {
        if( LOWORD( p_wParam ) == IDOK )
        {
            // OK ボタンが押されました。
            EndDialog( p_hDlgWnd, IDOK );
            return TRUE;
        }

『メッセージが WM_COMMAND だと、ボタンを押したとか、メニューを選択し
たってことなんだよね』
「そう。で、 WPARAM の下位2バイトにボタンの ID が入っているので、そ
れを LOWORD マクロで取り出して比較すればいいわけです」
『で、 ID が IDOK のボタン、つまり OK ボタンが押されたらダイアログを
EndDialog() で閉じる、ってわけね』
「そういうこと。ここまではこれまでの復習。次からが応用になります」
『まず……最初のとこはさっきと同じだね』

        else if( LOWORD( p_wParam ) == IDC_B_EQUAL )
        {

『これは = ボタンを押した場合、ってことだね』
「そう、ここでは = ボタンを押した時の処理を行います。まずはみっつの
エディットボックスのウィンドウハンドルを取得します」

            // 各エディットボックスのウィンドウハンドル
            // を取得します。
            HWND hLeftWnd 
                = GetDlgItem( p_hDlgWnd, IDC_E_LEFT );   ← 1
            HWND hRightWnd 
                = GetDlgItem( p_hDlgWnd, IDC_E_RIGHT );  ← 2
            HWND hAnswerWnd 
                = GetDlgItem( p_hDlgWnd, IDC_E_ANSWER ); ← 3

「それぞれ、以下のエディットボックスのウィンドウハンドルを取得してい
ます」

          1                 2                       3
          ↓                ↓                      ↓
│ ┌─────┐   ┌──────┐ ┌─┐ ┌──────┐  │
│ │IDC_E_LEFT│ + │IDC_E_RIGHT │ │= │ │IDC_E_ANSWER│  │
│ └─────┘   └──────┘ └─┘ └──────┘  │

「 GetDlgItem() は Version 5.26 ( No.091 ) で説明した、ダイアログ
コントロールのウィンドウハンドルを取得する API 」
『そうなんだよね、ボタンとかって全部ウィンドウなんだよね』
「そう、だからこうしてウィンドウハンドルを取得できるわけです。で、
ここで Version 5.26 ( No.091 ) と Version 5.27 ( No.092 ) の、
ボタンに書かれている文字列を変える例を思い出して」
『んー、確か SetWindowText() って API で好きな文字列をセットできるん
だよね』
「そうでした。で、その逆に GetWindowText() っていう API もあって、こ
れは逆にウィンドウの文字列を取得することができます」
『 Version 5.31 ( No.096 ) で使ったね。あれはメンバ関数の方だったけ
ど』
「で、その Version 5.31 ( No.096 ) でもちょっと触れたけど、
エディットボックスに入力された文字列は、この GetWindowText() で取得
できるんです。こんな感じに」

            // 各エディットボックス用文字列を用意します。
            char pchLeft[256];
            char pchRight[256];
            char pchAnswer[256];

            // IDC_E_LEFT と IDC_E_RIGHT の文字列を取得します。
            GetWindowText( hLeftWnd, pchLeft, 255 );
            GetWindowText( hRightWnd, pchRight, 255 );

『あ、そっか、あのときはコンボボックスから取ってたけど、普通に
エディットボックスに書かれたのも取れるんだ』
「そういうこと。この GetWindowText() で、 IDC_E_LEFT と IDC_E_RIGHT
のふたつのエディットボックスに入力された文字列が取得できます」
『おお……って、 MFC 使わないとこれだけでもめんどいね……』
「確かに……さらに面倒なことに、計算機アプリなので、これを整数値に
変換する必要があります。これは Version 12.02 ( No.225 ) で説明した
atoi() というランタイム関数を使用します」

            // それぞれ int 型に変換します。
            int iLeft = atoi( pchLeft );
            int iRight = atoi( pchRight );

『これで整数値に変換して、足すわけね』
「足したものを、 Version 5.07 ( No.072 ) で説明した sprintf() で
文字列にします」

            // 足した結果を pchAnswer に文字列変換します。
            sprintf( pchAnswer, "%d", iLeft + iRight );

『これもランタイムだね。これはいつも使ってるから慣れてるかも』
「最後に、この文字列を IDC_E_ANSWER エディットボックスにセットしま
す。セットということは、 API は？」
『 GetWindowText() の逆だから SetWindowText() ！』

            // それを IDC_E_ANSWER にセットします。
            SetWindowText( hAnswerWnd, pchAnswer );


「と、これで足し算の結果が IDC_E_ANSWER エディットボックスに表示され
るわけです」
『ややこし！』

/*
    Preview Next Story!
*/
『んー、これだけでも結構複雑かも』
「でもこれはこれまでの応用だから」
『確かにそうなんだけど』
「それにこれ以上は詳しく説明しないし」
『ってことは次は別の話？』
「というわけで次回」
＜ Version 18.03 ダイアログプロシージャを static メンバ関数にする ＞
『につづく！』
「残り回数が少ない分、ちゃっちゃと行きます！」
『げげ』


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

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


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

    (C)KAB-studio 1999 - 2007 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz
*/
////////////////////////////////////////////////////////////////////

