とある集団のプログラムメモ

ダイアログウィンドウと呼ばれる形.
内容はダイアログボックス形1と同じ乱数生成.
CreateWindow()ではなくCreateDialog()を使う.
cbWndExtraにDLGWINDOWEXTRAを設定.
リソースのクラス名をlpszClassNameと同じにする.
リソースビューでMFC ModeをFalseにすればClass Nameのオプションが変更可能になる.
DestroyWindow()するのを忘れた.
ソースファイル

#include <Windows.h>

#include "resource.h"

//ウィンドウプロシージャ
LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
	switch(msg)
	{
	//ダイアログボックスが作成されたとき
	case WM_INITDIALOG:
		break;

	//ダイアログボックスの動作
  	case WM_COMMAND:
       		switch(LOWORD(wParam))
        	{
       		case IDC_BUTTON_RAND:
			SetDlgItemInt(hWnd, IDC_RESULT, rand(), FALSE);
            		break;
        	}
        	break;

	//ウィンドウの破壊
	case WM_DESTROY:
        	PostQuitMessage(0);
        	break;
    }

	return DefWindowProc( hWnd, msg, wParam, lParam );
}

//メイン関数
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
	int		width		= 640;
	int		height		= 480;
	int		windowHeight	= height + GetSystemMetrics( SM_CYFRAME ) * 2 + GetSystemMetrics( SM_CYCAPTION );
	int		windowWidth	= width  + GetSystemMetrics( SM_CXFRAME ) * 2 ;

	WCHAR*		className	= L"class_win32_template_2";
	MSG		msg;

	//ウィンドウクラス
	WNDCLASSEX	wc;
	wc.cbSize		= sizeof(wc);	
	wc.style		= CS_CLASSDC;
	wc.lpfnWndProc		= WndProc;
	wc.cbClsExtra		= 0;
	wc.cbWndExtra		= DLGWINDOWEXTRA;
	wc.hInstance		= hInstance;
	wc.hIcon		= (HICON)LoadImage( NULL, MAKEINTRESOURCE(IDI_APPLICATION), IMAGE_ICON, 0, 0, LR_SHARED );
	wc.hCursor		= (HCURSOR)LoadImage( NULL, MAKEINTRESOURCE(IDC_ARROW), IMAGE_CURSOR, 0, 0, LR_SHARED );
	wc.hbrBackground	= (HBRUSH)(COLOR_BTNFACE+1);
	wc.lpszMenuName		= NULL;
	wc.lpszClassName	= className;
	wc.hIconSm		= (HICON)LoadIcon( NULL, IDI_APPLICATION );

	//ウィンドウクラスの登録
	if( !RegisterClassEx(&wc) ) return 0;

	//ウィンドウをCreateDialogで生成 
	HWND		hWnd	= CreateDialog(hInstance , MAKEINTRESOURCE(IDD_DIALOG) , NULL , (DLGPROC)WndProc);

	ShowWindow(hWnd, nCmdShow);
	UpdateWindow(hWnd);

	//メッセージループ
	while( GetMessage(&msg, NULL, 0, 0) )
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

	return 0;
}

このページへのコメント

umKQlf I appreciate you sharing this article.Really looking forward to read more. Awesome.

0
Posted by check it out 2014年01月21日(火) 09:29:23 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

×

この広告は60日間更新がないwikiに表示されております。

メンバーのみ編集できます