#include <Windows.h>
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParan, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdline, int nCmdShow){
static TCHAR szlate[] = L"我的窗口";
WNDCLASS ws;
PlaySound(L"FirstBlood.wav", NULL, SND_FILENAME | SND_ASYNC);
ws.style = CS_HREDRAW | CS_VREDRAW;
ws.lpfnWndProc = WndProc;
ws.cbClsExtra = 0;
ws.cbWndExtra = 0;
ws.hInstance = hInstance;
ws.hIcon = (HICON)::LoadImage(NULL, L"icon.ico", IMAGE_ICON, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE);
ws.hCursor = LoadCursor(NULL, IDC_ARROW);
ws.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
ws.lpszClassName = szlate;
ws.lpszMenuName = NULL;
if (!RegisterClass(&ws)) return -1;
HWND hwnd;
hwnd = CreateWindow(szlate, szlate, WS_OVERLAPPEDWINDOW,100, 100, 640, 480, NULL, NULL, hInstance, NULL);
ShowWindow(hwnd, nCmdShow); //显示窗口
UpdateWindow(hwnd); //更新窗口
//消息循环
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_KEYDOWN:
if (wParam == VK_ESCAPE){
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}