[WinAPI] API 4 [注册][创建][消息][第一个框架类窗口]
首先注册了窗口类,然后创建了一个窗口,创建窗口时指定的窗口的属性和窗口消息的处理函数。函数消息的处理函数大多调用系统默认函数来处理。
1 #include<windows.h> 2 3 /*全局变量*/ 4 HINSTANCE hinst; 5 6 /*函数声明*/ 7 int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int); 8 LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM); 9 10 /*显示一个窗口*/ 11 int WinMain(HINSTANCE hInstance, 12 HINSTANCE hPrevInstance, 13 LPSTR lpCmdLine, 14 int nCmdShow 15 ) 16 { 17 WNDCLASSEX wcx;//窗口类 18 HWND hwnd;//窗口句柄 19 MSG msg;//消息 20 BOOL fGotMessage;//是否获取消息 21 hinst=hInstance;//应用程序实例句柄,保存为全局变量 22 //填充窗口的数据结构 23 wcx.cbSize=sizeof(wcx);//结构体的大小 24 wcx.style=CS_HREDRAW | CS_VREDRAW;//样式:大小改变时重绘界面 25 wcx.lpfnWndProc=MainWndProc;//消息处理函数 26 wcx.cbClsExtra=0;//不使用类内存 27 wcx.cbWndExtra=0;//不使用窗口内存 28 wcx.hInstance=hInstance;//所属应用程序的实例句柄 29 wcx.hIcon=LoadIcon(NULL,IDI_APPLICATION);//图标:默认 30 wcx.hCursor=LoadCursor(NULL,IDC_ARROW);//光标:默认 31 wcx.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//背景:白色 32 wcx.lpszMenuName=NULL;//菜单:不使用 33 wcx.lpszClassName="MainWClass";//窗口类名 34 wcx.hIconSm=(HICON)LoadImage(hInstance, 35 MAKEINTRESOURCE(5), 36 IMAGE_ICON, 37 GetSystemMetrics(SM_CXSMICON), 38 GetSystemMetrics(SM_CYSMICON), 39 LR_DEFAULTCOLOR); 40 41 //注册窗口类 42 if(!RegisterClassEx(&wcx)) 43 { 44 MessageBox(NULL,TEXT("注册窗口失败"),NULL,MB_OK); 45 return 1; 46 } 47 48 //创建窗口 49 hwnd=CreateWindow( 50 "MainWClass",//window name 51 "CH 2-3",//window title 52 WS_OVERLAPPEDWINDOW,//窗口样式 53 CW_USEDEFAULT,//水平位置X:默认 54 CW_USEDEFAULT,//水平位置Y:默认 55 CW_USEDEFAULT,//width:默认 56 CW_USEDEFAULT,//high:默认 57 (HWND)NULL,//父窗口:无 58 (HMENU)NULL,//菜单:使用窗口类的菜单 59 hInstance,//应用程序实例句柄 60 (LPVOID)NULL);//窗口创建时数据:无 61 62 if(!hwnd) 63 { 64 MessageBox(NULL,TEXT("创建窗口失败"),NULL,MB_OK); 65 return 1; 66 } 67 //显示窗口 68 ShowWindow(hwnd,nCmdShow); 69 UpdateWindow(hwnd); 70 //消息循环 71 while((fGotMessage=GetMessage(&msg,(HWND)NULL,0,0))!=0 && fGotMessage!=-1) 72 { 73 TranslateMessage(&msg); 74 DispatchMessage(&msg); 75 } 76 return msg.wParam; 77 } 78 /*MainWndProc**************************** 79 *消息处理函数 80 *对所有消息采取默认处理函数 81 *****************************************/ 82 LRESULT CALLBACK MainWndProc(HWND hwnd, 83 UINT uMsg, 84 WPARAM wParam, 85 LPARAM lParam 86 ) 87 { 88 switch(uMsg) 89 { 90 case WM_DESTROY: 91 ExitThread(0); 92 return 0; 93 default: 94 return DefWindowProc(hwnd,uMsg,wParam,lParam); 95 } 96 }
[WinAPI] API 4 [注册][创建][消息][第一个框架类窗口]相关推荐
- Windows API 编程起始——创建一个窗口
最初了解Windows api编程呢,就是先创建出一个最简洁的窗口,就如我们学习C/C++时的"Helloword"一样,这是进入windows编程大门的重要一个步,下面就开始吧. ...
- WinAPI入门: 第一个标准Win32窗口程序 [改进详细注释版]
WinAPI入门: 第一个标准Win32窗口程序 下载链接: 若想立即看到本程序的运行结果,可点击EXE文件的免费下载链接; HelloWin_v1.sfx.exe;–带语音和背景音乐; 相关链接: ...
- 使用 ChatGPT API 和节点创建 CLI 聊天机器人.js
ChatGPT风靡全球,本周,OpenAI发布了ChatGPT API.我花了一些时间在浏览器中使用 ChatGPT,但真正适应这些新功能的最好方法是尝试使用它构建一些东西.有了可用的 API,现在是 ...
- RTX5 | 消息队列01 - 创建消息队列
文章目录 一.前言 二.实验的目的 三.API 3.1.osMessageQueueId_t 3.2.osMessageQueueAttr_t 3.3.osMessageQueueNew 四.代码 4 ...
- 应用程序进程(三):创建消息循环
1.在ActivityThread的main方法中开启主线程的消息循环 在其它线程中创建Looper可使用 Looper.prepare()方法 //ActivityThread#main publi ...
- Web API 2 入门——创建ASP.NET Web API的帮助页面(谷歌翻译)
在这篇文章中 创建API帮助页面 将帮助页面添加到现有项目 添加API文档 在敞篷下 下一步 作者:Mike Wasson 创建Web API时,创建帮助页面通常很有用,以便其他开发人员知道如何调用A ...
- 创建自己第一个安卓程序_从一天创建和发布我的第一个应用程序中学到的东西...
创建自己第一个安卓程序 by Sarvasv Kulpati 由Sarvasv Kulpati 从一天创建和发布我的第一个应用程序中学到的东西 (What I learned from creatin ...
- SIP注册信令消息示范及解释
注册信令消息示范: 1.1 REGISTER sip:SIP服务器编码@目的域名或IP地址端口SIP/2.0 Via: SIP/2.0/UDP 源域名或IP地址端口 From: <sip:SIP ...
- pyqt5+qt desiger实例教程(1)创建含有三个按钮的窗口,点击按钮2输出消息、按钮3可退出
pyqt5+qt desiger实例教程(1)创建含有三个按钮的窗口,点击按钮三可退出 目标:设计一个含有三个按钮的窗口,点击按钮2弹出消息,点击按钮3退出 如果是使用的anacoda那么自带qtde ...
最新文章
- this.options[selectedIndex]的使用
- Tips-Windows 10【多桌面视窗】操作
- 疯狂ios讲义之网页控件(UIWebView)
- SAP BSP - how to access javascript file via Mime API
- functor_纯Java中的Functor和Monad示例
- Android studio Github 断开连接
- Spring Boot基础学习笔记15:实现文件下载功能
- Flutter代码锦囊---摇一摇
- 4. ubuntu php composer
- socket 和 TCP/IP 协议的关系
- js foreach用法_36 个JS 面试题为你助力金九银十(面试必读)
- 5G聚合路由器有哪些优势?能应用在哪些场景?
- 实验二 (一) 大小写英文字母表
- 《猎头局中局》——摘要
- 华为防火墙双机热备-HRP
- MCS:离散随机变量——Poisson分布
- 中山西路620号 的人才服务中心搬到 梅园路77号去了
- 一犯人在执行死刑前三天供出祖传治癌奇方
- 导出excel表格并返回给前端的快捷用法(上)
- python输入百分制成绩输出成绩等级_switch实现成绩打等级