「VC++まとめ」(2005/08/22 (月) 13:38:17) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
<font color=
"#993300"><b>どこに書いたか忘れそうなので、VC++まとめページ</b></font>
<hr>
<p><font color="#993300"><b>DC(デバイスコンテキスト)</b><br>
グラフィックモードを定義するデータ構造をもつもの<br>
<br>
<b>ドキュメントクラス</b><br>
ユーザーデータを保持したり、処理したりするプログラム部分<br>
"---Doc.h"とか"---Doc.cpp"といったファイルが使われる。<br>
<br>
<b>memDC(メモリデバイスコンテキスト)</b><br>
<font color=
"#993300">メモリデバイスコンテキストとは、メモリ上にあるGDIオブジェクトのビットマップに描画するためのデバイスコンテキストです。ウインドウやスクリーンのデバイスコンテキストに描画すると、その結果は画面やウインドウに描画されますが、GDIオブジェクトのビットマップを含んだ(選択した)メモリデバイスコンテキストに描画すると、その結果はメモリ上のビットマップに描画されます。<br>
</font><i>っていうか・・・メモリ上のビットマップってなんだろうな・・・</i><br>
<br>
<b>API [Application Program Interface]</b><br>
命令、関数群 共通してる機能をまとめてあるって考えればいいんじゃない?<br>
<br>
<b>MFC</b><br>
APIを呼んでプログラムを動かしてるもの、内部構造はわからない<font color="#993300">という危険も伴う、諸刃の剣。<br>
素人にはお薦め出来ない。<br></font><br>
<b>ATL</b> Active Templete Liblary<br>
何のことだっけ・・・わすれた<br>
<br>
<br>
<b>LPCTSTR<br></b>ぶっちゃけ、文字列用ポインタ。 詳しくは<a href="http://www.kab-studio.biz/Programing/PragmaTwice/Main/073.html">ココ</a><br>
<br>
<b>pParent</b><br>
親ウィンドのポインタ<br>
<br>
<b>wParam</b><br>
まぁ・・・ただの整数 キーが押された情報がwparamに格納されるとかなんとか<br>
<br>
<b>Lparam</b><br>
long型のパラメータ・・・詳しくしらべてねーや<br>
<br>
<b>Dynamic_downcast </b><b>参考リンク</b>[<a href=
"http://www1.kcn.ne.jp/%7Erobe/cpphtml/html03/cpp03056.html">ロベール</a>]<br>
動的キャスト<br>
castはC言語では一つしかなく、4つの意味を持つという判りにくいことをしていたが、<br>
C++では4つにわかれた、そのうちの一つ。<br>
他の三つは [const_cast] [static_cast] [reinterpret_cast] <br>
<b>static_cast</b>は静的キャスト<br>
何でもキャストしてくれる憎いやつ<br>
まったく使えないのはご愛嬌。</font><font color="#993300"><br>
<br>
<b>dynamic_cast< type >( expr )<br>
type</b> は変更される側<br>
<br>
<b>expr</b> は変更元<br>
<br>
例)DYNAMIC_DOWNCAST(CNKWndBase, pParentWnd,)<br></font><font color=
"#993300">は、pParentWndを、 CNKWndBaseがキャストされる。<br>
・・・あってるよね?<br>
<br>
動的キャストは主に継承が行なわれているか確認のために使われる。<br>
キャスト失敗時には、NULLを返してくれる。<br>
<br>
動的キャストが使えるのは、多態性をもっているときのみで、<br>
いわゆる、仮想関数がないとだめ、ていうか継承してんだからそら無いならつかえんわな。<br>
<br>
なぜかっていうとオブジェクトの型に関する情報は仮想関数テーブルへ埋め込まれるから<br>
なんて説明もあったりするが仮想関数テーブルがなんなのか不明だったりする。<br>
<br>
また、クロスキャストを行なうときには動的キャストでなければならない。<br>
クロスキャストってのは、多重継承の親同士のキャストのことで、<br>
この辺がややこしかったりするので、リンク先のロバートのとこを参照で。<br>
<br>
<br>
<b>ASSERT<br></b>診断が偽のときにプログラムを中止する。デバッグのときのみ実行するとかなんとか・・・<br>
<br>
<b>VERIFY<br></b>データが正確かどうか検査してくれる。<br>
<br>
<b>Typedef</b><br>
型の別名を付けてくれる。<br>
つまり、構造体を一つ宣言したはいいが、呼びづらいから、判りやすい名前に変えたりできるとかそんな感じ。<br>
<br>
<b><u>クラス関係<br>
<br>
</u>CWnd<br></b>ウィンド作成 、ウィンドメッセージ配送<br>
<br>
<b>CRect</b><br>
長方形を作る。<br>
<br>
<b>GetClientRect</b><br>
ウィンドウのクライアント領域の座標を取得<br>
<br>
<b>GetWindowRect<br></b></font><font color=
"#993300">ウィンドウの外側のサイズを取得・・・どこだよ、・・・<br>
<br>
<b>ScreenToClient</b><br>
スクリーンからウィンドウの座標に変換<br>
<br>
<b>GetParent</b><br>
指定された親ウィンドウか、オーナーウィンドウ(?)に新しいハンドルを取得<br>
<br>
<b>TRANSPARENT</b><br>
背景を透明にするっぽい<br>
<br>
<b>ODS_DISABLED</b><br>
ボタンが無効のときの処理<br>
<br>
<b>OnEraseBkgnd</b><br>
SDIでの背景色の変更・・・嘘くさい・・・<br>
<br>
<b>IMPLEMENT_DYNAMIC(・・・中略・・・)</b><br>
動的にオブジェクトを作成するための宣言</font></p>
<p><b><font color=
"#993300">BEGIN_MESSAGE_MAP(・・・中略・・・)</font></b><font color=
"#993300"><br>
メッセージマップを使用するための宣言</font><b><font color=
"#993300"><br></font></b></p>
<p><b><font color="#993300">ON_WM_PAINT()<br>
ON_WM_CTLCOLOR()</font></b><br>
<font color=
"#993300">など[ON_WM_~]は、これから ~をするぞ!宣言。と考えるべし。</font></p>
<p style="COLOR: rgb(153,0,0); BACKGROUND-COLOR: rgb(255,255,255)">
<b>_T("・・・")<br></b>unicode形式で・・・という文字列を与える。らしい。詳細は<a href="http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/_core_unicode_programming_summary.asp">ここ</a><br>
</p>
<p style="COLOR: rgb(153,0,0); BACKGROUND-COLOR: rgb(255,255,255)">
<b>HBITMAP</b><br>
bitmap形式の画像を読み込むための宣言<br></p>
<p style="COLOR: rgb(153,0,0); BACKGROUND-COLOR: rgb(255,255,255)">
<strong>HBRUSH<br></strong>↑と同じようなもので、ブラシを宣言したりするもの<br>
<br>
<strong>AFX_MSG_MAP</strong><br>
ハンドラ関数のマップ・・・だと思う。<br>
<br>
hbr<br>
ブラシのハンドル。<br>
<br>
<br>
<br></p>
<p><font color="#993300">メッセージ<br>
マウスがクリックされたとかの情報を送ること<br>
<br>
イベントドリブン<br>
イベント処理が進むこと・・・C++ではメッセージドリブンというとか言わないとか<br>
<br>
メッセージ対応の処理を行なう関数をメッセージハンドラというとか。<br>
<br>
<br>
<br>
<br></font><br>
<br>
<br></p>
<font color=
"#993300"><b>どこに書いたか忘れそうなので、VC++まとめページ</b></font>
<hr>
<p><font color="#993300"><b>DC(デバイスコンテキスト)</b><br>
グラフィックモードを定義するデータ構造をもつもの<br>
<br>
<b>ドキュメントクラス</b><br>
ユーザーデータを保持したり、処理したりするプログラム部分<br>
"---Doc.h"とか"---Doc.cpp"といったファイルが使われる。<br>
<br>
<b>memDC(メモリデバイスコンテキスト)</b><br>
<font color=
"#993300">メモリデバイスコンテキストとは、メモリ上にあるGDIオブジェクトのビットマップに描画するためのデバイスコンテキストです。ウインドウやスクリーンのデバイスコンテキストに描画すると、その結果は画面やウインドウに描画されますが、GDIオブジェクトのビットマップを含んだ(選択した)メモリデバイスコンテキストに描画すると、その結果はメモリ上のビットマップに描画されます。<br>
</font><i>っていうか・・・メモリ上のビットマップってなんだろうな・・・</i><br>
<br>
<b>API [Application Program Interface]</b><br>
命令、関数群 共通してる機能をまとめてあるって考えればいいんじゃない?<br>
<br>
<b>MFC</b><br>
APIを呼んでプログラムを動かしてるもの、内部構造はわからない<font color="#993300">という危険も伴う、諸刃の剣。<br>
素人にはお薦め出来ない。<br></font><br>
<b>ATL</b> Active Templete Liblary<br>
何のことだっけ・・・わすれた<br>
<br>
<br>
<b>LPCTSTR<br></b>ぶっちゃけ、文字列用ポインタ。 詳しくは<a href="http://www.kab-studio.biz/Programing/PragmaTwice/Main/073.html">ココ</a><br>
<br>
<b>pParent</b><br>
親ウィンドのポインタ<br>
<br>
<b>wParam</b><br>
まぁ・・・ただの整数 キーが押された情報がwparamに格納されるとかなんとか<br>
<br>
<b>Lparam</b><br>
long型のパラメータ・・・詳しくしらべてねーや<br>
<br>
<b>Dynamic_downcast </b><b>参考リンク</b>[<a href=
"http://www1.kcn.ne.jp/%7Erobe/cpphtml/html03/cpp03056.html">ロベール</a>]<br>
動的キャスト<br>
castはC言語では一つしかなく、4つの意味を持つという判りにくいことをしていたが、<br>
C++では4つにわかれた、そのうちの一つ。<br>
他の三つは [const_cast] [static_cast] [reinterpret_cast] <br>
<b>static_cast</b>は静的キャスト<br>
何でもキャストしてくれる憎いやつ<br>
まったく使えないのはご愛嬌。</font><font color="#993300"><br>
<br>
<b>dynamic_cast< type >( expr )<br>
type</b> は変更される側<br>
<br>
<b>expr</b> は変更元<br>
<br>
例)DYNAMIC_DOWNCAST(CNKWndBase, pParentWnd,)<br></font><font color=
"#993300">は、pParentWndを、 CNKWndBaseがキャストされる。<br>
・・・あってるよね?<br>
<br>
動的キャストは主に継承が行なわれているか確認のために使われる。<br>
キャスト失敗時には、NULLを返してくれる。<br>
<br>
動的キャストが使えるのは、多態性をもっているときのみで、<br>
いわゆる、仮想関数がないとだめ、ていうか継承してんだからそら無いならつかえんわな。<br>
<br>
なぜかっていうとオブジェクトの型に関する情報は仮想関数テーブルへ埋め込まれるから<br>
なんて説明もあったりするが仮想関数テーブルがなんなのか不明だったりする。<br>
<br>
また、クロスキャストを行なうときには動的キャストでなければならない。<br>
クロスキャストってのは、多重継承の親同士のキャストのことで、<br>
この辺がややこしかったりするので、リンク先のロバートのとこを参照で。<br>
<br>
<br>
<b>ASSERT<br></b>診断が偽のときにプログラムを中止する。デバッグのときのみ実行するとかなんとか・・・<br>
<br>
<b>VERIFY<br></b>データが正確かどうか検査してくれる。<br>
<br>
<b>Typedef</b><br>
型の別名を付けてくれる。<br>
つまり、構造体を一つ宣言したはいいが、呼びづらいから、判りやすい名前に変えたりできるとかそんな感じ。<br>
<br>
<b><u>クラス関係<br>
<br>
</u>CWnd<br></b>ウィンド作成 、ウィンドメッセージ配送<br>
<br>
<b>CRect</b><br>
長方形を作る。<br>
<br>
<b>GetClientRect</b><br>
ウィンドウのクライアント領域の座標を取得<br>
<br>
<b>GetWindowRect<br></b></font><font color=
"#993300">ウィンドウの外側のサイズを取得・・・どこだよ、・・・<br>
<br>
<b>ScreenToClient</b><br>
スクリーンからウィンドウの座標に変換<br>
<br>
<b>GetParent</b><br>
指定された親ウィンドウか、オーナーウィンドウ(?)に新しいハンドルを取得<br>
<br>
<b>TRANSPARENT</b><br>
背景を透明にするっぽい<br>
<br>
<b>ODS_DISABLED</b><br>
ボタンが無効のときの処理<br>
<br>
<b>OnEraseBkgnd</b><br>
SDIでの背景色の変更・・・嘘くさい・・・<br>
<br>
<b>IMPLEMENT_DYNAMIC(・・・中略・・・)</b><br>
動的にオブジェクトを作成するための宣言</font></p>
<p><b><font color=
"#993300">BEGIN_MESSAGE_MAP(・・・中略・・・)</font></b><font color=
"#993300"><br>
メッセージマップを使用するための宣言</font><b><font color=
"#993300"><br></font></b></p>
<p><b><font color="#993300">ON_WM_PAINT()<br>
ON_WM_CTLCOLOR()</font></b><br>
<font color=
"#993300">など[ON_WM_~]は、これから ~をするぞ!宣言。と考えるべし。</font></p>
<p style="COLOR: rgb(153,0,0); BACKGROUND-COLOR: rgb(255,255,255)">
<b>_T("・・・")<br></b>unicode形式で・・・という文字列を与える。らしい。詳細は<a href="http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/_core_unicode_programming_summary.asp">ここ</a><br>
</p>
<p style="COLOR: rgb(153,0,0); BACKGROUND-COLOR: rgb(255,255,255)">
<b>HBITMAP</b><br>
bitmap形式の画像を読み込むための宣言<br></p>
<p style="COLOR: rgb(153,0,0); BACKGROUND-COLOR: rgb(255,255,255)">
<strong>HBRUSH<br></strong>↑と同じようなもので、ブラシを宣言したりするもの<br>
<br>
<strong>AFX_MSG_MAP</strong><br>
ハンドラ関数のマップ・・・だと思う。<br>
<br>
hbr<br>
ブラシのハンドル。<br>
<br>
<strong>HDC</strong><br>
ハンドルのDC <a href=
"http://www.kab-studio.biz/Programing/PragmaTwice/Main/122.html">ココ</a>にわかりやすい説明が。<br>
<br>
<br></p>
<p><font color="#993300">メッセージ<br>
マウスがクリックされたとかの情報を送ること<br>
<br>
イベントドリブン<br>
イベント処理が進むこと・・・C++ではメッセージドリブンというとか言わないとか<br>
<br>
メッセージ対応の処理を行なう関数をメッセージハンドラというとか。<br>
<br>
<br>
<br>
<br></font><br>
<br>
<br></p>
表示オプション
横に並べて表示:
変化行の前後のみ表示: