|
/*========================================================*/ <<<あゆしゃの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 |