用c语言开发第一个win32api窗口程序
[toc]
前因
在windows下学习c/c++程序时,总是黑窗口,不禁有了疑惑->窗口程序是怎么开发出来的?后来了解到可以调用win32api开发出windows系统的窗口程序。此篇文章记录一下第一个windows窗口程序的开发。
过程
一 第一个控制台程序
在visualstudio中新建一个c语言程序项目,功能为在控制台界面中显示hello world.
使用visualStudio新建空项目,并添加一个源文件main.cpp,并写出c语言的helloworld代码。
main.cpp
1 |
|
编译运行会在控制台里输出hello world,如图所示
二 第一个win32api的使用
修改源main.cpp文件代码,在主函数里调用win32api中的弹窗函数
main.cpp
1 |
|
编译运行会弹出一个消息框,如图所示
三 第一个windows窗口程序
1.修改源main.cpp文件代码,调用win32api中的窗口函数
- 控制台程序的入口点为main()函数,windows窗口程序的默认入口点为Winmain
- 需要在项目中把改变设置Properties->Linker->System->SubSystem->Windows
- 第一个窗口程序主要分为一个入口函数WinMain与一个回调函数
- 创建第一个windows窗口程序用到的主要函数
- 注册 RegisterClassEx
- 创建窗口 CreateWindowEx
- 显示窗口 ShowWindow
- 进入消息循环 GetMessage
WinMain
1 | int WinMain( |
WindowProc
1 | LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) |
第一个窗口程序完整代码main.cpp
1 |
|
编译运行会显示一个窗口
2.完善第一个windows窗口程序,给窗口添加控件
添加一下代码,给窗口程序添加一个按钮
1 | HWND hwndButton = CreateWindow( |
main.cpp
1 |
|
3.继续完善第一个windows窗口程序,使用消息处理
- 在窗口消息函数中添加以下代码,当鼠标左键点击按钮时弹出一个消息框
1 | case WM_COMMAND: |
main.cpp
1 |
|
4.完善消息处理
完整代码示例main.cpp
1 |
|
win32api封装后创建窗口程序
补充说明
创建窗口的思路演变
1.API创建窗口及消息处理
写一个窗口入口函数,入口函数创建窗口。
写一个消息处理函数,处理窗口程序的每个功能。
2.使用对话框资源创建窗口
- 在工程中添加资源,控件可以拖动。
- 将控件的头文件包含进源文件。
资源文件里画的控件图标,在源文件里写控件消息,在入口函数里调用控件api函数将窗口过程与消息绑定。
3.使用MFC创建对话框窗口
调用win32api开发windows窗口程序的项目称为windows桌面程序,在VisualStudio2019中可以创建windows桌面程序的工程,创建方法为选择Windows Desktop Wizard->desktop或windows desktop application
相关链接:
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
