C语言编写Windows下的实用程序:[3]窗口
1、打开VS2010,建立Win32项目SimpleWindow。
![C语言编写Windows下的实用程序:[3]窗口](https://exp-picture.cdn.bcebos.com/732a12e265e7340f9a76f69035b9763e20c2b4a6.jpg)
3、在项目中添加"SimpleWindow.cpp"文件。
![C语言编写Windows下的实用程序:[3]窗口](https://exp-picture.cdn.bcebos.com/b1454a1bd10ff2260395d3bd9c99e92abbb8a4a6.jpg)
5、CreateWindowEx函数:该函数创建一个具有扩展风格的层叠式窗口、弹出式窗口或子窗口,其他与CreateWindow函数相同。关于创建窗口和其他参数的内容,请参看CreateWindow。具体仍可见微软的msdn。
![C语言编写Windows下的实用程序:[3]窗口](https://exp-picture.cdn.bcebos.com/906dbbcadce8904820f39544130e5f20427192a6.jpg)
7、最终SimpleWindow的代码如下:#include <Windows.h>#include <tchar.h&爿讥旌护gt;LRESULT WINAPI WinProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);int WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nShowCmd ){ TCHAR *szName = _T("myWindow"); WNDCLASSEX wc = {0}; HWND hWnd = NULL; MSG Msg = {0}; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.cbSize = sizeof(WNDCLASSEX); wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//通过函数来设置一个白色的背景,这里大家设置为NULL看看,会很有趣的 wc.hCursor = NULL;//不设置 wc.hIcon = NULL;//不设置 wc.hIconSm = NULL;//不设置 wc.hInstance = hInstance;//当前程序的句柄,hInstance是有系统给传递的 wc.lpfnWndProc = WinProc;//窗口处理过程的回调函数。 wc.lpszClassName = szName;//窗口类的名字。 wc.lpszMenuName = NULL; wc.style = CS_HREDRAW | CS_VREDRAW; RegisterClassEx(&wc);//在系统中注册 hWnd = CreateWindowEx(WS_EX_CLIENTEDGE,szName,_T("我的窗口我喜欢"),WS_OVERLAPPEDWINDOW, 200,100,600,400,NULL,NULL,hInstance,NULL);//创建窗口,窗口标题为"我的窗口我喜欢" if(hWnd == NULL) { MessageBox(NULL,_T("There's an Error"),_T("Error Title"),MB_ICONEXCLAMATION|MB_OK); return 0; } ShowWindow(hWnd,nShowCmd);//显示窗口 UpdateWindow(hWnd); //下面是对消息的循环处理,大家先不必管这些,下节课我会细说的 while(GetMessage(&Msg,NULL,0,0)) { TranslateMessage(&Msg);//翻译消息 DispatchMessage(&Msg);//分派消息 } return Msg.message;}//消息处理函数LRESULT WINAPI WinProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam){ switch(Msg)//处理消息过程 { case WM_DESTROY://响应鼠标单击关闭按钮事件 PostQuitMessage(0);//退出消息队列 return 0;//退出函数 } return DefWindowProc(hWnd,Msg,wParam,lParam);}编译链接后,得到如图中所示,可以看到我们自己的窗口程序就出来了。
![C语言编写Windows下的实用程序:[3]窗口](https://exp-picture.cdn.bcebos.com/b87bd38920c5260fa33a3f39d2de4507890189a6.jpg)