[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 }
复制代码
相关文章
JSON 安全 API
111 0
JSON 监控 API
109 0
|
4月前
|
API 开发工具 开发者
客流类API实测:门店到访客群画像数据
本文介绍了一个实用的API——“门店到访客群画像分布”,适用于线下实体门店进行客群画像分析。该API支持多种画像维度,如性别、年龄、职业、消费偏好等,帮助商家深入了解顾客特征,提升运营效率。文章详细说明了API的参数配置、响应数据、接入流程,并附有Python调用示例,便于开发者快速集成。适合零售、餐饮等行业从业者使用。
客流类API实测:门店到访客群画像数据
|
5月前
|
存储 监控 API
零基础 3 天搞定京东 / 淘宝 API 开发,从注册到调通接口全流程拆解
本文详解京东/淘宝API开发入门,涵盖账号注册、应用创建、签名生成及实战项目,助零基础开发者3天掌握电商API调用,实现商品数据获取与价格监控。
|
9月前
|
缓存 安全 Java
《从头开始学java,一天一个知识点》之:字符串处理:String类的核心API
🌱 **《字符串处理:String类的核心API》一分钟速通!** 本文快速介绍Java中String类的3个高频API:`substring`、`indexOf`和`split`,并通过代码示例展示其用法。重点提示:`substring`的结束索引不包含该位置,`split`支持正则表达式。进一步探讨了String不可变性的高效设计原理及企业级编码规范,如避免使用`new String()`、拼接时使用`StringBuilder`等。最后通过互动解密游戏帮助读者巩固知识。 (上一篇:《多维数组与常见操作》 | 下一篇预告:《输入与输出:Scanner与System类》)
267 11
|
12月前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
161 8
|
人工智能 API 语音技术
开发者福利,魔搭推出免费模型推理API,注册就送每日2000次调用!
今天,魔搭社区开放了免费的开源模型推理API,仅需使用魔搭的SDK Token,就可以通过简单的API请求探索各种强大的开源模型的使用。
1957 9
|
缓存 API 数据库
Python哪个框架合适开发速卖通商品详情api?
在跨境电商平台速卖通的商品详情数据获取与整合中,Python 语言及其多种框架(如 Flask、Django、Tornado 和 FastAPI)提供了高效解决方案。Flask 简洁灵活,适合快速开发;Django 功能全面,适用于大型项目;Tornado 性能卓越,擅长处理高并发;FastAPI 结合类型提示和异步编程,开发体验优秀。选择合适的框架需综合考虑项目规模、性能要求和团队技术栈。
144 2
|
安全 API 数据库
Python哪个框架合适开发淘宝商品详情api?
在数字化商业时代,开发淘宝商品详情API成为企业拓展业务的重要手段。Python凭借其强大的框架支持,如Flask、Django、Tornado和FastAPI,为API开发提供了多样化的选择。本文探讨了这些框架的特点、优势及应用场景,帮助开发者根据项目需求选择最合适的工具,确保API的高效、稳定与可扩展性。
169 0
|
开发框架 Java 关系型数据库
Java哪个框架适合开发API接口?
在快速发展的软件开发领域,API接口连接了不同的系统和服务。Java作为成熟的编程语言,其生态系统中出现了许多API开发框架。Magic-API因其独特优势和强大功能,成为Java开发者优选的API开发框架。本文将从核心优势、实际应用价值及未来展望等方面,深入探讨Magic-API为何值得选择。
484 2