c/c++win 32学習の一つwindowウィンドウ開発基礎
12771 ワード
c/c++win 32学習の一つwindowウィンドウ開発基礎
win 32学習内容まとめ
Windowsウィンドウの作成(カスタマイズ)
手順:1.登録ウィンドウクラス2.ウィンドウ3を作成する.ウィンドウ4を表示する.ウィンドウ5をリフレッシュする.メッセージ処理関数6.メッセージループ
その他のリンクディレクトリ windowウィンドウ開発基礎 メッセージループ 重要メッセージ メニュー GDI画図 その他のコントロール ファイルアクション メモリマッピング プロセススレッド スレッドスケジューリング ライブラリ ネットワークプログラミング
win 32学習内容まとめ
Windowsウィンドウの作成(カスタマイズ)
手順:1.登録ウィンドウクラス2.ウィンドウ3を作成する.ウィンドウ4を表示する.ウィンドウ5をリフレッシュする.メッセージ処理関数6.メッセージループ
#include
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hParInstance,
LPSTR lpCmdLine,
int nCmd
)
{
//1.
WNDCLASSEXW wc;
wc.cbSize = sizeof(WNDCLASSEX); //
wc.style = CS_HREDRAW | CS_VREDRAW; //
wc.lpfnWndProc = WndProc; //
wc.hInstance = hInstance; //
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW); //
wc.cbClsExtra = 0; //
wc.cbWndExtra = 0; //
wc.lpszClassName = L"firstWindow"; // ( )
wc.lpszMenuName = NULL; //
wc.hCursor = LoadCursor(NULL, IDC_ARROW); //
wc.hIcon = NULL; //
wc.hIconSm = NULL; //
RegisterClassExW(&wc);
//2.
HWND hWnd = CreateWindowExW(
NULL, //
wc.lpszClassName, //
L" ", //
WS_OVERLAPPEDWINDOW, //
200, 100, //
600, 600, //
NULL, //
NULL, //
wc.hInstance, //
NULL //
);
if (!hWnd)
{
MessageBoxExW(NULL, L" ", L" ", MB_OK, 0);
}
//3.
ShowWindow(hWnd, nCmd);
//4.
UpdateWindow(hWnd);
//6.
MSG msg;
BOOL bRet;
while (true)
{
if (PeekMessageW(&msg, nullptr, 0, 0, false))
{
if ((bRet = GetMessage(&msg, nullptr, 0, 0)) != 0)// , 0, , 0
{
if (bRet == -1)
{
//
}
else
{
TranslateMessage(&msg); //
DispatchMessage(&msg); //
}
}
else
{
break;
}
}
}
return 0;
}
//5.
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_DESTROY: //
{
PostQuitMessage(0); //
break;
}
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return NULL;
}
その他のリンクディレクトリ