[WinAPI] API 4 [注册][创建][消息][第一个框架类窗口]
2014-03-06 01:55
218 查看
[b]首先注册了窗口类,然后创建了一个窗口,创建窗口时指定的窗口的属性和窗口消息的处理函数。[/b][b]函数消息的处理函数大多调用系统默认函数来处理。[/b]
#include<windows.h> /*全局变量*/ HINSTANCE hinst; /*函数声明*/ int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int); LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM); /*显示一个窗口*/ int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { WNDCLASSEX wcx;//窗口类 HWND hwnd;//窗口句柄 MSG msg;//消息 BOOL fGotMessage;//是否获取消息 hinst=hInstance;//应用程序实例句柄,保存为全局变量 //填充窗口的数据结构 wcx.cbSize=sizeof(wcx);//结构体的大小 wcx.style=CS_HREDRAW | CS_VREDRAW;//样式:大小改变时重绘界面 wcx.lpfnWndProc=MainWndProc;//消息处理函数 wcx.cbClsExtra=0;//不使用类内存 wcx.cbWndExtra=0;//不使用窗口内存 wcx.hInstance=hInstance;//所属应用程序的实例句柄 wcx.hIcon=LoadIcon(NULL,IDI_APPLICATION);//图标:默认 wcx.hCursor=LoadCursor(NULL,IDC_ARROW);//光标:默认 wcx.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//背景:白色 wcx.lpszMenuName=NULL;//菜单:不使用 wcx.lpszClassName="MainWClass";//窗口类名 wcx.hIconSm=(HICON)LoadImage(hInstance, MAKEINTRESOURCE(5), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR); //注册窗口类 if(!RegisterClassEx(&wcx)) { MessageBox(NULL,TEXT("注册窗口失败"),NULL,MB_OK); return 1; } //创建窗口 hwnd=CreateWindow( "MainWClass",//window name "CH 2-3",//window title WS_OVERLAPPEDWINDOW,//窗口样式 CW_USEDEFAULT,//水平位置X:默认 CW_USEDEFAULT,//水平位置Y:默认 CW_USEDEFAULT,//width:默认 CW_USEDEFAULT,//high:默认 (HWND)NULL,//父窗口:无 (HMENU)NULL,//菜单:使用窗口类的菜单 hInstance,//应用程序实例句柄 (LPVOID)NULL);//窗口创建时数据:无 if(!hwnd) { MessageBox(NULL,TEXT("创建窗口失败"),NULL,MB_OK); return 1; } //显示窗口 ShowWindow(hwnd,nCmdShow); UpdateWindow(hwnd); //消息循环 while((fGotMessage=GetMessage(&msg,(HWND)NULL,0,0))!=0 && fGotMessage!=-1) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } /*MainWndProc**************************** *消息处理函数 *对所有消息采取默认处理函数 *****************************************/ LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) { switch(uMsg) { case WM_DESTROY: ExitThread(0); return 0; default: return DefWindowProc(hwnd,uMsg,wParam,lParam); } }
相关文章推荐
- 注册 创建 显示 刷新窗口(注建显新),事件,消息循环,消息处理,钩子,dll钩子. (注重理解其中的逻辑关系)
- 消息循环,注册窗口,创建窗口【图解】
- Windows(WinAPI)窗口创建后,依次接收的消息
- windows 窗口创建,消息泵,对话框,控件常用API
- 调用WINAPI 创建一个窗口并显示一些东西(create a window and display something)
- win32创建窗口及其消息循环
- vc++窗口的创建过程(MFC消息机制的经典文章)
- Win32编程 创建窗口第一步 注册窗口类
- 创建ArcGIS API for JavaScript的第一个示例程序
- MFC中,我从一个对话框,同时在按钮的消息处理函数中利用DoModal()函数一级一级的创建许多模态对话框,那么怎样从某个子对话框返回第一个对话框呢?
- 窗口注册类结构和消息结构详解
- 使用Win32 API创建不规则形状&带透明色的窗口
- (2)qt5的图像界面(UI)创建第一个项目并以运行窗口为例
- QT创建窗口程序、消息循环和WinMain函数(为主线程建立了一个QEventLoop,并执行exec函数)
- MFC应用程序消息处理及其窗口创建和销毁过程函数调用顺序
- Windows窗口程序从创建到关闭产生的消息
- WM_SIZE后于WM_CREATE消息!!在窗口被创建时的顺序!
- Win32中窗口的创建和消息机制以及MFC对Win32的封装简介
- MFC 流程跟踪(窗口设计,注册,创建)
- 谈谈windows窗口注册和创建