MessageBox()関数


int MessageBox(
 HWND hWnd,
 LPCTSTR lpszText,
 LPCTSTR lpszCaption,
 UINT nType
);


hWnd表示するメッセージボックスが持つ親ウィンドウを第1引数に指定します。親ウィンドウを持たない場合はNULLを渡します。
lpszTextNULLで終わる文字列へのポインタを渡します。
lpszCaptionNULLで終わる文字列へのポインタ。lpszCaptionがNULLの場合は、既定のキャプションである"エラー"が使われます。
nTypeメッセージ ボックスの内容と動作を指定します。


アイコンの指定
MB_ICONSTOP.bmpMB_ICONHAND、MB_ICONSTOP、MB_ICONERROR
MB_ICONQUESTION.bmpMB_ICONQUESTION
MB_ICONEXCLAMATION.bmpMB_ICONEXCLAMATION、MB_ICONWARNING
MB_ICONINFORMATION.bmpMB_ICONASTERISK、MB_ICONINFORMATION

基本的なスタイルの指定
MB_ABORTRETRYIGNORE[中止]、[再試行]、[無視]
MB_OK[OK](デフォルト)
MB_OKCANCEL[OK]、[キャンセル]
MB_RETRYCANCEL[再試行]、[キャンセル]
MB_YESNO[はい]、[いいえ]
MB_YESNOCANCEL[はい]、[いいえ]、[キャンセル]

戻り値
IDABORT[中止]が押された
IDCANCEL[キャンセル]が押された
IDIGNORE[無視]が押された
IDNO[いいえ]が押された
IDOK[OK]が押された
IDRETRY[再試行]が押された
IDYES[はい]が押された
Windows > ウィンドウの作成 | comments (0) | trackbacks (0)

文字列の表示


LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
 PAINTSTRUCT ps;
 HDC hdc;
 wchar_t wstr[256];
 int x=10, y=10;

 switch ( message )
 {
 case WM_PAINT:
  hdc = BeginPaint(hWnd, &ps);
  // TODO: 描画コードをここに追加してください...
  SetTextColor( hdc, RGB( 128, 128, 128 ) ); // 文字色の色
  SetBkMode( hdc, TRANSPARENT ); // 文字の背景を透明にする
  wsprintf( wstr, L"x=%d y=%d", x, y ); // 数値の文字列化
  TextOut( hdc, 10, 10, wstr, ( int )wcslen( wstr ) ); // 文字列を表示
  EndPaint( hWnd, &ps );
  break;
 }
 return 0;
}

Windows > グラフィック | comments (0) | trackbacks (0)

BeginPaint()関数とGetDC()関数

BeginPaint()で取得されたデバイスコンテキストを用いて描画する場合は、
そのウィンドウに設定されている背景色で背景を再描画したあとグラフィックが描かれ、
さらにコントロールがある場合、それも再描画されます。
これらの描画はウィンドウ全体に対して行われるのでなく、
Windowsで設定される無効領域にだけ行われます。

これに対し、GetDC()で取得したデバイスコンテキストを用いた場合、
背景色やコントロール、無効領域に関係無く、
ウィンドウ全面にグラフィックスのみが重ね書きで描画されます。

一般に、WM_PAINTが送られた場合はBeginPaint()、
その他の場合はGetDC()といった使い分けが行われます。
Windows > グラフィック | comments (0) | trackbacks (0)