#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); // 窗口过程
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int iCmdShow) { static TCHAR szAppName[] = TEXT("Hello Windows"); HWND hwnd; MSG msg; WNDCLASS wndclass; // 以下是窗口类 wndclass.style = CS_HREDRAW|CS_VREDRAW; wndclass.lpfnWndProc = WndProc; // 窗口过程 wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance; wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL,IDC_ARROW); wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = szAppName; // 注册窗口类 if ( !RegisterClass(&wndclass)) { MessageBox(NULL,TEXT("This programe requires Windows NT!"),szAppName,MB_ICONERROR); return 0; } // 创建窗口 hwnd = CreateWindow(szAppName,szAppName,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL); // 显示窗口 ShowWindow(hwnd,iCmdShow); // 更新窗口 UpdateWindow(hwnd); // 消息循环 while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); }
return msg.wParam; }
// 窗口过程 LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; RECT rect;
switch(message) { case WM_CREATE: //PlaySound(TEXT("hellowin.wav"),NULL,SND_FILENAME|SND_ASYNC); return 0; case WM_PAINT: hdc = BeginPaint(hwnd,&ps); GetClientRect(hwnd,&rect); DrawText(hdc, TEXT("Hello An,Welcome to the world of Windows!"), -1, &rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER); EndPaint(hwnd,&ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; }
return DefWindowProc(hwnd,message,wParam,lParam); // 其他时间的默认处理方法,必须要有 }
以下是运行截图: