メルマガ:あゆしゃのC言語プログラミング
タイトル:あゆしゃのC言語プログラミング(Vol.415) SOM2 イベントとオーバーライド  2004/01/21


/*========================================================*/
    <<<あゆしゃのC言語プログラミング>>>
/*========================================================*/
 第415回 SOM2 イベントとオーバーライド
 発行    2004年1月21日(水曜日)
 発行数   約3200

{magclick}
/*========================================================*/
 はじめに ( 決り文句 )
/*========================================================*/
・このメールマガジンはまぐまぐさんから発行しています。
・ジャンルは、マルチメディアのプログラム、C言語です。
・このメールマガジンは、横60文字で作成しています。
 また、インデントはすべて半角スペース4つで構成しています。
・ここで扱うプログラムは、C言語と半光年以内のものです。
・登録解除は、まぐまぐさんのホームページでお願いします。
・まぐまぐさんのバックナンバー(下欄参照)を活用して下さい。
・ここは私の復習の場です。内容は約1ヶ月内外に私が勉強した
 内容になっています。最新の技術があれば、へたれもあります。
・わかりやすさを優先させる為、たまに嘘があるかもしれません。

/*========================================================*/
 ご挨拶
/*========================================================*/

 こんにちは。あゆしゃです。

 最近、毎日碁盤で遊んでいるあゆしゃ。

 ひたすら、本を見ながら、石を並べている毎日です。

 参考にしているのは、

新・呉清源道場「1」
星の両ガカリ定石10パターン70型

 この2冊です。
 碁の本は20冊ほど持っていますが、最近買ったものなので手元
にあったのです。

 いままでは本を見ても、石を頭で創造するだけだったのですが、
2004年のあゆしゃは碁盤を持っているのですよ、奥さん。

 呉清源先生(ごせいげん、囲碁の世界では超有名な人、ガンダム
で例えると1年戦争を生き抜いたレビル将軍という感じ。80歳
ぐらい)の本のほうは、説明が丁寧で、分かりやすいことを実感
しました。

 両ガカリのほうは、説明は一応あるのですが、譜面の番号を
言葉にしているだけで、不適切だと実感しました。

 石を並べてみて、いろいろと驚くことが満載です。

{magclick}
/*========================================================*/
 今回のお題  << SOM2 イベントとオーバーライド >>
/*========================================================*/

 VC++7.0にて、OnTimerを追加したかったときのこと。

 平然と、Ctrl+Wを押してみる。

 ・・・なんでクラスウィザードが出てこないアル!?

 頭の中が中国人になってしまったような驚きでした。

 何でもかんでもアルをつければ中国人になるのか、なります。

 さて、オプションが怪しいと狙って、いろいろいじってみると、

★オプションが死んで2回ほど再起動。オプションは丁寧に。

 さてさて、クラスビューでダイアログクラスを選択した状態で!
オプションを開くと、なにやら怪しい、メッセージというチップ
が表示されるボタンを発見。

 クリックしてみると、見慣れたWM_XXの一覧が出てきました。

 ニンマリです。ここまで来るのに時間をかけていますからね!

 さてさてさて、WM_TIMERを選択してみると、右側にプルダウン
ボックスが出現。

 それを開いてみると、「<追加>OnTimer」などという文字が
あるじゃないですか。

 疑いもなくクリックしてみると、ソースにOnTimerが追加され
ました。

 一安心です。

/*========================================================*/

 ところが!

 コンパイルエラーが出ました。

m_nTimerID = SetTimer( 1, 1000, NULL );

 m_nTimerIDは、いつも通り、UINTで宣言したものです。

 1秒タイマーを発生させて、そのIDを受け取っているつもりなの
ですが、これがエラーになりました。

 どうも、SetTimerの戻り値がUINTから、UINT_PTRなるものに
変更されているということでした。

 宣言をたどったところ、PTRとあるのでポインタなのかと思って
いたら、結局unsigned intでした。

 いったい、UINT_PTRとは何者でしょうか?

 ・・・という詮索はおいておいて、m_nTimerIDの宣言を
UINT_PTRにしたら、OKでした。

 いったい、UINT_PTRとは何者でしょうか?

/*========================================================*/

 VC++7.0にて、ダイアログを新規作成したときのこと。

 OnInitiDialogをどうやって追加するのか、分かりません
でした。

 つまりオーバーライド関数の追加です。これがイベントハンドラ
とは違うのですね。

 ここぞと馬鹿りに「オーバーライド」でヘルプを検索、いまさら
ながらにも「オーバーライドの方法」みたいなページでお勉強。

 オーバーライド関数の追加は、クラスビューでダイアログクラス
を選択してオプションを開き、オーバーライドボタン(四角いの)
を選択してから、OnInitDialogを選択し、ドロップダウンリスト
から「<追加>OnInitDialog」を選択する、ということでした。

 四角いボタンに気がついていませんでした。うーん。。。

{magclick}
/*========================================================*/
 さいごに
/*========================================================*/

 パソコンでCDを聞くと、CPUパワーを奪われてエディッタなどが
とまってしまうので、基本的にパソコンでCDを聞くことはありませ
んでした。

 先日、ふと、

「CPUが1メガなんだから、CDぐらい聞けるかもしれない」

 ということに気がつきました。

 1メガCPUを買ってから、1年半が経過したころでした。

 さっそく「ルパン3世」をかけたところ、スムーズに動きます。

 すごいぞ、1メガはすごいぞ!

{magclick}
/*========================================================*/
 次回予告
/*========================================================*/

 次回は1月23日(金曜日)に、第416回を送ります。
 お題は「SOM3 CStringで木構造」

 続いて、内容に入りましょう。

 お楽しみに!

/*========================================================*/
 最後の決り文句
/*========================================================*/
 このメールマガジンは、まぐまぐさんから発行しています。
 このメールマガジンを解除したい場合は、まぐまぐさんをご利用
ください。このメルマガのまぐまぐアイディーは最後にあります。
 このメールマガジンには広告が挿入されます。
 このメールマガジンの内容に文面の引用はありません。
 めーらっくすの場合はめーらっくすの利用方に従ってください。
 このメールマガジンの内容の、転用、流用、宣伝、リンク、
るぱんださ〜 なんて大歓迎です。

{magclick}
/*========================================================*/
 
/*========================================================*/

発行者 あゆしゃ

まぐまぐアイディー
0000020674

まぐまぐバックナンバー
http://jazz.tegami.com/backnumber/frame.cgi?id=0000020674

あゆしゃの世界
http://ayusya.hp.infoseek.co.jp/

登録と解除
http://www.mag2.com/m/0000020674.htm

ご意見・ご感想・ご質問メール
mailto:ayusya@flamenco.plala.or.jp

めーらっくす <<過去ログがタイトル別になっています>>
http://www.mailux.com/mm_dsp.php?mm_id=MM3E1AEE285AB4F

ブラウザの閉じるボタンで閉じてください。