#include <windows.h>//一定要包含该头文件 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);//消息处理函数的声明,定义放在主函数后面 int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow) { static TCHAR szAppName[]=TEXT("Hello");//注册的窗口类的名称,此处为"Hello" WNDCLASS wndclass;//定义了一个窗口类 wndclass.style=CS_HREDRAW|CS_VREDRAW; wndclass.lpfnWndProc=WndProc;//此处关联了定义的消息处理函数 wndclass.cbClsExtra=0; wndclass.cbWndExtra=0; wndclass.hInstance=hInstance;//实例句柄 wndclass.hIcon=NULL;//窗口的图标,我们这里不设置 wndclass.hCursor=LoadCursor(NULL,IDC_ARROR);//设置光标 wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//画刷 wndclass.lpszMenuName=NULL; wndclass.lpszClassName=szAppName;//类名称 if(!RegisterClass(&wndclass))//注册窗口 { MessageBox(NULL,TEXT("窗口注册失败"),szAppName,MB_ICONERROR); return 0; } //下面开始建立窗口 HWND hwnd; hwnd=CreateWindow(szAppName,TEXT("The Hello Program"), CW_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 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,UINT,WPARAM,LPARAM)//此例子中我们只是处理简单的消息 { switch(message) { case WM_DESTROY: PostQuitMessage(0); return 0; } return ::DefWindowProc(hwnd,message,wParam,lParam); }
参考资料:建议把问题转移到VC区