「VC++まとめ」の編集履歴(バックアップ)一覧に戻る
VC++まとめ - (2005/08/17 (水) 15:21:42) のソース
<p><font color= "#993300"><strong>どこに書いたか忘れそうなので、VC++まとめページ</strong></font></p> <hr> <p><font color= "#993300"><strong>DC(デバイスコンテキスト)</strong><br> グラフィックモードを定義するデータ構造をもつもの<br> <br> <strong>ドキュメントクラス</strong><br> ユーザーデータを保持したり、処理したりするプログラム部分<br> "---Doc.h"とか"---Doc.cpp"といったファイルが使われる。<br> <br> <strong>memDC(メモリデバイスコンテキスト)</strong><br> <font color= "#993300">メモリデバイスコンテキストとは、メモリ上にあるGDIオブジェクトのビットマップに描画するためのデバイスコンテキストです。ウインドウやスクリーンのデバイスコンテキストに描画すると、その結果は画面やウインドウに描画されますが、GDIオブジェクトのビットマップを含んだ(選択した)メモリデバイスコンテキストに描画すると、その結果はメモリ上のビットマップに描画されます。<br> </font><em>っていうか・・・メモリ上のビットマップってなんだろうな・・・</em><br> <br> <strong>API [Application Program Interface]</strong><br> 命令、関数群 共通してる機能をまとめてあるって考えればいいんじゃない?<br> <br> <strong>MFC</strong><br> APIを呼んでプログラムを動かしてるもの、内部構造はわからない<font color="#993300">という危険も伴う、諸刃の剣。<br> 素人にはお薦め出来ない。<br></font><br> <strong>ATL</strong> Active Templete Liblary<br> 何のことだっけ・・・わすれた<br> <br> <br> <strong>LPCTSTR<br></strong>ぶっちゃけ、文字列用ポインタ。 詳しくは<a href="http://www.kab-studio.biz/Programing/PragmaTwice/Main/073.html">ココ</a><br> <br> <strong>pParent</strong><br> 親ウィンドのポインタ<br> <br> <strong>wParam</strong><br> まぁ・・・ただの整数 キーが押された情報がwparamに格納されるとかなんとか<br> <br> <strong>Lparam</strong><br> long型のパラメータ・・・詳しくしらべてねーや<br> <br> <strong>Dynamic_downcast</strong><br> 動的キャスト <strong>参考リンク[</strong><a href= "http://www1.kcn.ne.jp/~robe/cpphtml/html03/cpp03056.html">ロベール</a>]<br> castはC言語では一つしかなく、4つの意味を持つという判りにくいことをしていたが、<br> C++では4つにわかれた、そのうちの一つ。<br> 他の三つは [const_cast] [static_cast] [reinterpret_cast] <br> <strong>static_cast</strong>は静的キャスト<br> 何でもキャストしてくれる憎いやつ<br> まったく使えないのはご愛嬌。</font><font color="#993300"><br> <br> 動的キャストは主に継承が行なわれているか確認のために使われる。<br> キャスト失敗時には、NULLを返してくれる。<br> <br> 動的キャストが使えるのは、多態性をもっているときのみで、<br> いわゆる、仮想関数がないとだめ、ていうか継承してんだからそら無いならつかえんわな。<br> <br> なぜかっていうとオブジェクトの型に関する情報は仮想関数テーブルへ埋め込まれるから<br> なんて説明もあったりするが仮想関数テーブルがなんなのか不明だったりする。<br> <br> また、クロスキャストを行なうときには動的キャストでなければならない。<br> クロスキャストってのは、多重継承の親同士のキャストのことで、<br> この辺がややこしかったりするので、リンク先のロバートのとこを参照で。<br> <br> <br> <strong>ASSERT<br></strong>診断が偽のときにプログラムを中止する。デバッグのときのみ実行するとかなんとか・・・<br> <br> <strong>VERIFY<br></strong>データが正確かどうか検査してくれる。<br> <br> <strong>Typedef</strong><br> 型の別名を付けてくれる。<br> つまり、構造体を一つ宣言したはいいが、呼びづらいから、判りやすい名前に変えたりできるとかそんな感じ。<br> <br> <strong><u>クラス関係<br> <br> </u>CWnd<br></strong>ウィンド作成 、ウィンドメッセージ配送<br> <br> <strong>CRect</strong><br> 長方形を作る。<br> <br> <strong>GetClientRect</strong><br> ウィンドウのクライアント領域の座標を取得<br> <br> <strong>GetWindowRect<br></strong></font><font color= "#993300">ウィンドウの外側のサイズを取得・・・どこだよ、・・・<br> <br> <strong>ScreenToClient</strong><br> スクリーンからウィンドウの座標に変換<br> <br> <strong>GetParent</strong><br> 指定された親ウィンドウか、オーナーウィンドウ(?)に新しいハンドルを取得<br> <br> <strong>TRANSPARENT</strong><br> 背景を透明にするっぽい<br> <br> <strong>ODS_DISABLED</strong><br> ボタンが無効のときの処理<br> <br> <strong>OnEraseBkgnd</strong><br> SDIでの背景色の変更・・・嘘くさい・・・<br> <br> <br> <br> <br> <br> <br> <br> <br> メッセージ<br> マウスがクリックされたとかの情報を送ること<br> <br> イベントドリブン<br> イベント処理が進むこと・・・C++ではメッセージドリブンというとか言わないとか<br> <br> メッセージ対応の処理を行なう関数をメッセージハンドラというとか。<br> <br> <br> <br> <br></font><br> <br> <br></p>