標籤:param AC fine dex update pat efault 執行個體控制代碼 註冊
#include <windows.h>
LRESULT CALLBACK wndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain1(HINSTANCE hInst, HINSTANCE, LPSTR szCmd, int nShow)
{
WNDCLASS wndClass;
TCHAR *ClassName = TEXT("MyClass");
HWND hwnd;//用來記錄視窗控制代碼
MSG msg;//定義一個訊息結構,用來儲存擷取的訊息
wndClass.cbClsExtra = 0;
wndClass.cbWndExtra = 0;
wndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndClass.lpfnWndProc = wndProc;
wndClass.lpszClassName = ClassName;//類名
wndClass.lpszMenuName = NULL;//暫時不要菜單
wndClass.style = CS_VREDRAW | CS_HREDRAW;
RegisterClass(&wndClass);//註冊視窗
//#define CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y,\nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)
hwnd = CreateWindow(
ClassName/*視窗類別*/,
TEXT("Hello"/*視窗名*/),
WS_OVERLAPPEDWINDOW/*視窗類別型*/,
CW_USEDEFAULT/*預設視窗位置 橫座標*/,
CW_USEDEFAULT/*預設視窗位置 縱座標*/,
500/*視窗的寬*/,
300/*視窗的高*/,
NULL/*父視窗:沒有父視窗,預設是案頭*/,
NULL/*沒有菜單*/,
hInst/*程式執行個體控制代碼*/,
NULL);
ShowWindow(hwnd, nShow);//顯示視窗
UpdateWindow(hwnd);//重新整理視窗
while (GetMessage(&msg, NULL, 0, 0))//如果給視窗發送訊息0 ,就退出迴圈結束程式
{
TranslateMessage(&msg);//翻譯
DispatchMessage(&msg);//把訊息發送給處理訊息的視窗程序
}
return 0;
}
LRESULT CALLBACK wndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lparam)
{
switch (message)
{
case WM_DESTROY:
PostQuitMessage(0);//給程式發送一條退出訊息 退出值0
return 0;
default:
return DefWindowProc(hwnd, message, wParam, lparam);//自己不處理,交給系統處理
}
}
windows 初體驗