DC(デバイスコンテキスト)
グラフィックモードを定義するデータ構造をもつもの
ドキュメントクラス
ユーザーデータを保持したり、処理したりするプログラム部分
"---Doc.h"とか"---Doc.cpp"といったファイルが使われる。
memDC(メモリデバイスコンテキスト)
メモリデバイスコンテキストとは、メモリ上にあるGDIオブジェクトのビットマップに描画するためのデバイスコンテキストです。ウインドウやスクリーンのデバイスコンテキストに描画すると、その結果は画面やウインドウに描画されますが、GDIオブジェクトのビットマップを含んだ(選択した)メモリデバイスコンテキストに描画すると、その結果はメモリ上のビットマップに描画されます。
っていうか・・・メモリ上のビットマップってなんだろうな・・・
API [Application Program Interface]
命令、関数群 共通してる機能をまとめてあるって考えればいいんじゃない?
MFC
APIを呼んでプログラムを動かしてるもの、内部構造はわからないという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
ATL Active Templete Liblary
何のことだっけ・・・わすれた
LPCTSTR
ぶっちゃけ、文字列用ポインタ。 詳しくはココ
pParent
親ウィンドのポインタ
wParam
まぁ・・・ただの整数 キーが押された情報がwparamに格納されるとかなんとか
Lparam
long型のパラメータ・・・詳しくしらべてねーや
Dynamic_downcast 参考リンク[ロベール]
動的キャスト
castはC言語では一つしかなく、4つの意味を持つという判りにくいことをしていたが、
C++では4つにわかれた、そのうちの一つ。
他の三つは [const_cast] [static_cast] [reinterpret_cast]
static_castは静的キャスト
何でもキャストしてくれる憎いやつ
まったく使えないのはご愛嬌。
dynamic_cast< type >( expr )
type は変更される側
expr は変更元
例)DYNAMIC_DOWNCAST(CNKWndBase, pParentWnd,)
は、pParentWndを、 CNKWndBaseがキャストされる。
・・・あってるよね?
動的キャストは主に継承が行なわれているか確認のために使われる。
キャスト失敗時には、NULLを返してくれる。
動的キャストが使えるのは、多態性をもっているときのみで、
いわゆる、仮想関数がないとだめ、ていうか継承してんだからそら無いならつかえんわな。
なぜかっていうとオブジェクトの型に関する情報は仮想関数テーブルへ埋め込まれるから
なんて説明もあったりするが仮想関数テーブルがなんなのか不明だったりする。
また、クロスキャストを行なうときには動的キャストでなければならない。
クロスキャストってのは、多重継承の親同士のキャストのことで、
この辺がややこしかったりするので、リンク先のロバートのとこを参照で。
ASSERT
診断が偽のときにプログラムを中止する。デバッグのときのみ実行するとかなんとか・・・
VERIFY
データが正確かどうか検査してくれる。
Typedef
型の別名を付けてくれる。
つまり、構造体を一つ宣言したはいいが、呼びづらいから、判りやすい名前に変えたりできるとかそんな感じ。
クラス関係
CWnd
ウィンド作成 、ウィンドメッセージ配送
CRect
長方形を作る。
GetClientRect
ウィンドウのクライアント領域の座標を取得
GetWindowRect
ウィンドウの外側のサイズを取得・・・どこだよ、・・・
ScreenToClient
スクリーンからウィンドウの座標に変換
GetParent
指定された親ウィンドウか、オーナーウィンドウ(?)に新しいハンドルを取得
TRANSPARENT
背景を透明にするっぽい
ODS_DISABLED
ボタンが無効のときの処理
OnEraseBkgnd
SDIでの背景色の変更・・・嘘くさい・・・
IMPLEMENT_DYNAMIC(・・・中略・・・)
動的にオブジェクトを作成するための宣言
BEGIN_MESSAGE_MAP(・・・中略・・・)
メッセージマップを使用するための宣言
ON_WM_PAINT()
ON_WM_CTLCOLOR()
など[ON_WM_~]は、これから ~をするぞ!宣言。と考えるべし。
_T("・・・")
unicode形式で・・・という文字列を与える。らしい。詳細はここ
HBITMAP
bitmap形式の画像を読み込むための宣言
HBRUSH
↑と同じようなもので、ブラシを宣言したりするもの
AFX_MSG_MAP
ハンドラ関数のマップ・・・だと思う。
hbr
ブラシのハンドル。
HDC
ハンドルのDC ココにわかりやすい説明が。
メッセージ
マウスがクリックされたとかの情報を送ること
イベントドリブン
イベント処理が進むこと・・・C++ではメッセージドリブンというとか言わないとか
メッセージ対応の処理を行なう関数をメッセージハンドラというとか。