////////////////////////////////////////////////////////////////////
■■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
　　　　　　　　　　　　サラリーマンの強い味方　　　　　　
　　　　　　　　　■格安航空券予約サイト- skyticket.jp - ■　　
　http://af1.mag2.com/m/af/0000008658/001/s00000001783005/001
　　　　　　　　　　　　
　　　　　ホテル付き　往復格安航空券で　最大７０％　ＯＦＦ　
　　　　　羽田─札幌　29,500円〜　　羽田─福岡　32,600円〜　
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━■■
////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


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

    送信日： 2007/02/12(Mon) No.394
    配信数： 1647
    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

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

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

2007/02/12 (Mon)
　#pragma twice ホームページ版にアーカイブ追加！
18.04 ウィンドウの 32 ビット整数値
18.05 ウィンドウプロシージャをメンバ関数にする！
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html


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

2007/02/04 (Sun)
　１０時起き。午前中は定期更新とアニメ鑑賞、午後は世界樹の迷宮。夕方
にほとはー外伝３、ぎりぎりだ。

2007/02/05 (Mon)
　９時起き。午前中は世界樹の迷宮、午後はアニメ感想書きとか。夕方に
秋葉原に行ってキーボード購入。まだ本調子じゃない。

2007/02/06 (Tue)
　寝方良くない。かぶろぐに石垣島レポート追加。食事をダイエットモード
に。あとは世界樹の迷宮とか。

2007/02/07 (Wed)
　ペンディングの残りをがーっと。洗濯したりとか。夕方に散歩、でも長く
歩けない。あと世界樹の迷宮。

2007/02/08 (Thu)
　世界樹の迷宮、ずーっとしてる。ほとはー外伝３描き。夜にウォーキング。
食欲を抑えるのが辛い。

2007/02/09 (Fri)
　ほとはー外伝３の主線描きときらら感想書き。夕方におしごとの面接とか。
夜に徹ゲー。午前１１時過ぎに帰宅。

2007/02/10 (Sat)
　結局寝てあとはぐだー。世界樹の迷宮したくらい。おとといのウォーキング
の疲れが大きい。


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

2007/02/04 (Sun)
http://d.hatena.ne.jp/kab_studio/20070204
起きたー。
[KAB-studio]ぷらとわ追加。
[KAB-studio][ほとはー]ほとはー外伝３ P.88
[買][世界樹の迷宮]サントラ発売決定！
[アニメ]「牙」 第44話「解けない呪縛」
[アニメ]おねがいマイメロディ〜くるくるシャッフル！〜 
　第45話「チュウできたらイイナ！」
[アニメ]ひまわりっ！！ 第5話「くのいち密偵大作戦」
[アニメ]京四郎と永遠の空 第5話「くちづけ洗礼」
[アニメ]神様家族 第5話「恋の季節?!気になるアイツ？」

2007/02/05 (Mon)
http://d.hatena.ne.jp/kab_studio/20070205
起きた。
[世界樹の迷宮]ワイバーン討伐！
[装備]iDはじめました。
[買]コミックスとか購入
[買][装備]キーボード 31P8974
[アニメ]金色のコルダ 第18話「傷心のパルティータ」
[アニメ]がくえんゆーとぴあ まなびストレート！ 
　第5話「ふたりっきりの、夜」

2007/02/06 (Tue)
http://d.hatena.ne.jp/kab_studio/20070206
起きた。
[病気治療]黒爪、の続き
[石垣島旅行]「追記」追加しました。
[世界樹の迷宮]B16Fへ
[アニメ]SHUFFLE! MEMORIES 第5話「リシアンサス編 前編」
[アニメ]Pumpkin Scissors 第18話「小さな戦力」

2007/02/07 (Wed)
http://d.hatena.ne.jp/kab_studio/20070207
起きた。
[世界樹の迷宮]カースメーカー参入！
[装備][link]Google MapsをW-ZERO3[es]に！
[アニメ]DEATH NOTE 第17話「執行」
[アニメ]ネギま！？ 第19話「童心に返って（略）」

2007/02/08 (Thu)
http://d.hatena.ne.jp/kab_studio/20070208
起きた。
[世界樹の迷宮]B21Fへ！
[アニメ]奏光のストレイン 第12話「リベルタッドの攻防」
[アニメ]武装錬金 第19話「君さえ守れれば」

2007/02/09 (Fri)
http://d.hatena.ne.jp/kab_studio/20070209
起きた。
[きらら]まんがタイムきらら 2007年3月号
[アニメ]のだめカンタービレ 第5話
[アニメ]ひだまりスケッチ 第5話「2月13日 こころとからだ」
[アニメ]セイントオクトーバー 第6話「ロリ結成！ゴスな少女の超探偵団！」
[アニメ]すもももももも〜地上最強のヨメ〜 第17話「激闘！虎の兄弟」

2007/02/10 (Sat)
http://d.hatena.ne.jp/kab_studio/20070210
帰ってきましたよ。
[世界樹の迷宮]初めてザコに全滅させられた。
[アニメ]デルトラクエスト 第6話「嘆きの湖にすむ怪物」
[アニメ]彩雲国物語 第37話「雨は天から、涙は目から」
[アニメ]おとぎ銃士 赤ずきん 第32話「ブレーメンよ永遠に」
[アニメ]ふしぎ星の☆ふたご姫 Gyu! 
　第45話「恋するエリザベータ 手作りバレンタイン」
[アニメ]コードギアス 反逆のルルーシュ 第17話「」


////////////////////////////////////////////////////////////////////
// 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

■追加・更新単語

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


////////////////////////////////////////////////////////////////////
■■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
　　　　　　　　　　　　サラリーマンの強い味方　　　　　　
　　　　　　　　　■格安航空券予約サイト- skyticket.jp - ■　　
　http://af1.mag2.com/m/af/0000008658/001/s00000001783005/001
　　　　　　　　　　　　
　　　　　ホテル付き　往復格安航空券で　最大７０％　ＯＦＦ　
　　　　　羽田─札幌　29,500円〜　　羽田─福岡　32,600円〜　
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━■■
////////////////////////////////////////////////////////////////////
// #pragma twice
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

　Version 18.07
ウィンドウプロシージャを純粋仮想関数にする、の続き

「前回は、ダイアログプロシージャを純粋仮想関数にするところまでしまし
た」
『なんかすごく中途半端なところで終わったんだけど』
「プログラム、半分しか紹介しなかったからね。前回のプログラムでは 
CDialog クラスに以下の修正をしました」

・DialogProc() メンバ関数を純粋仮想関数に。
・デストラクタを追加。

「 DialogProc() メンバ関数を純粋仮想関数にしたことでメンバ関数の
中身がなくなりました」
『中身がなくても呼べるんだから不思議よねぇ』

// ダイアログプロシージャ（形式上）。
BOOL CALLBACK CDialog::DispatchDialogProc
    ( HWND p_hDlgWnd
    , UINT p_uiMessage
    , WPARAM p_wParam
    , LPARAM p_lParam
    )
{
// 略

    // メンバ関数のダイアログプロシージャを呼び出します。
    return 
        pcDialog->DialogProc    ←純粋仮想関数を呼び出しています。
            ( p_hDlgWnd
            , p_uiMessage
            , p_wParam
            , p_lParam 
            );
}

「 Version 17.16 ( No.371 ) で説明したように、純粋仮想関数は中身を
派生クラスに作って、そちらを呼び出します」
『つまり、この CDialog クラスだけじゃなくて、別に派生クラス作って継承
させるってわけね』
「そういうこと。そこで、 Version 18.03 ( No.390 ) と同じ方法で
ソースファイルとヘッダーファイルを追加してクラスを追加します。作成す
るファイルは以下の2つです」

・NewCalcDialog.h
・NewCalcDialog.cpp

『追加するクラスは CNewCalcDialog クラスね』
「というわけで、この2つのファイルに以下のプログラムを書いてくださ
い。まず NewCalcDialog.h から」

// NewCalcDialog.h

// CNewCalcDialog クラス。
class CNewCalcDialog : public CDialog
{
public:
    // ダイアログプロシージャ。
    BOOL DialogProc
    ( HWND p_hDlgWnd
    , UINT p_uiMessage
    , WPARAM p_wParam
    , LPARAM p_lParam
    );
};

『 CNewCalcDialog クラスね。お、ちゃんと CDialog クラスから継承して
る！』
「この CNewCalcDialog クラスは CDialog クラスの派生クラスで、
DialogProc() メンバ関数をオーバーライド、正確には実装しています」
『純粋仮想関数だった DialogProc() メンバ関数に中身作ったわけね』
「その DialogProc() メンバ関数の中身は NewCalcDialog.cpp ファイルに
書きます。それが以下のプログラム」

// NewCalcDialog.cpp
#include <Windows.h>
#include <stdio.h>
#include "resource.h"
#include "Dialog.h"
#include "NewCalcDialog.h"

// ダイアログプロシージャ。
BOOL CNewCalcDialog::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;
        }
        else if( LOWORD( p_wParam ) == IDC_B_EQUAL )
        {
            // 各エディットボックスのウィンドウハンドル
            // を取得します。
            HWND hLeftWnd 
                = GetDlgItem( p_hDlgWnd, IDC_E_LEFT );
            HWND hRightWnd 
                = GetDlgItem( p_hDlgWnd, IDC_E_RIGHT );
            HWND hAnswerWnd 
                = GetDlgItem( p_hDlgWnd, IDC_E_ANSWER );

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

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

            // それぞれ int 型に変換します。
            int iLeft = atoi( pchLeft );
            int iRight = atoi( pchRight );
            
            // 足した結果を pchAnswer に文字列変換します。
            sprintf( pchAnswer, "%d", iLeft + iRight );

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

            // ここで SetWindowLong() していた箇所は
            // 削除してください。

            return TRUE;
        }
    }
    return FALSE;
}

「 DialogProc() メンバ関数の中身はこれまでと同じなのでそのままコピペ
しても構いません」
『ホントだ、そのまま派生クラスに移動したって感じね』
「最後に、 Main.cpp もちょこっと修正します」

// Main.cpp
#include <Windows.h>
#include <stdio.h>
#include "resource.h"
#include "Dialog.h"
#include "NewCalcDialog.h" // ←追加してください。

// WinMain() 。
int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    // CNewCalcDialog クラスでダイアログを作成します。
    CNewCalcDialog cDialog;    // ←クラス名を変更してください。
    cDialog.DoModal( p_hInstance, IDD_MAIN );

    return 0;
}

「修正箇所は2ヶ所。まず NewCalcDialog.h ヘッダーファイルを
インクルードしてください。そのあと、 CDialog クラスの変数を宣言して
いた所を、 CNewCalcDialog クラスに変更してください」
『 CDialog クラスから CNewCalcDialog クラスに切り替えたわけね。それ
って CDialog クラスだと変数作れないから？』
「そう！　純粋仮想関数を持っている CDialog クラスは変数を作ることが
できないんです。だから CNewCalcDialog クラスに変更するわけです」
『なるほどねー』
「修正する所は以上です。ビルドして実行してみて」
『ほい。うん、同じように計算できるよ』
「そう、今回の修正はプログラムの構造を変えただけで、機能は変わってな
いから」
『……でも、じゃあ何のためにやったの？』
「その説明は次回に」

/*
    Preview Next Story!
*/
『んー、なんかファイル増えただけで意味なくない？』
「意味はちゃんとあるんです」
『ホントに？　つかなんだかクラスが増えて頭こんがらがってきたんだけど』
「 MFC に比べればずっと少ないでしょ」
『え、 MFC に比べればそりゃねぇ……』
「というわけで次回」
＜ Version 18.08 継承で機能を分けて再利用 ＞
『につづく！』
「楽しくなると自分で MFC くらいクラス作るようになるから」
『嫌！　それはすっごく嫌！』


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

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
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
*/
////////////////////////////////////////////////////////////////////

