创建窗口-DialogBox

HWND DialogBox(__in_opt HINSTANCE hInstance,  //实例句柄__in LPCWSTR lpTemplateName, //资源名__in_opt HWND hWndParent, //父窗口__in_opt DLGPROC lpDialogFunc, //对话框消息处理函数); //创建成功返回

将资源文件转化为LPCWSTR
用法:MAKEINTRESOURCE(i)
其实也可以直接类型装置转化 char*,这个方法最快
#define MAKEINTRESOURCEW(i) ((LPWSTR)((ULONG_PTR)((WORD)(i))))

BOOL EndDialog(__in HWND hDlg,__in INT_PTR nResult);

在资源只有按钮控件,按钮控件的消息处理是用WM_COMMAND消息,LOWORD(wParam)取得按钮被按下的消息,直接用case 资源ID(IDC_BUTTON1)来判断按钮是否被按下。处理消息。


//创建一个简单的对话框程序
#include <Windows.h>
#include "resource.h"INT_PTR CALLBACK MyDlgProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{BOOL bRet = FALSE;switch(msg){case WM_LBUTTONDOWN:MessageBox(hwnd,"左键被按下","按钮消息",MB_OK);break;case WM_COMMAND:switch(LOWORD(wParam)){case IDC_BUTTON1:MessageBox(hwnd,"按钮1","提示",MB_OK);break;case IDC_BUTTON2:MessageBox(hwnd,"按钮2","提示",MB_OK);break;default:bRet = FALSE;break;}break;case WM_CLOSE:EndDialog(hwnd,0);break;case WM_DESTROY:PostQuitMessage(0);break;default:bRet = FALSE;break;}return bRet;
}int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPTSTR szCmdLine,int nWindowShow)
{DialogBox(hInstance,MAKEINTRESOURCE(IDD_DLGBOX),NULL,MyDlgProc);return 0;
}

WinAPI 对话框DialogBox、EndDialog、MAKEINTRESOURCE(资源转化宏)、窗口消息处理函数(返回值为FALSE)相关推荐

  1. c语言宏函数返回值,C++宏定义方法的返回值

    这个人呐,面个试都会紧张,一紧张就忘东西...哎 其实究其原因在于自己对知识了解没有深入到一定程度(自己:怪我咯). 起因 今天被问到使用C++语言中的宏来求一年的秒数. 分析问题,其实秒数很容易计算 ...

  2. 宏函数返回值(C/C++)

    1 背景 最近开发新模块的驱动,看了下大佬提交的代码(封装给我用),每个寄存器读写通过宏函数封装实现的API.另外,我们的Linux内核中很多的函数也是通过宏函数定义的.按照其格式修改下,大致如下,: ...

  3. C语言宏定义值为函数返回值

    在C语言编程过程中可能会遇到定义一个宏,但是这个宏的值是从另一个接口运行返回值. 可以使用如下我这种方式,demo代码如下: #include <stdio.h> #include < ...

  4. 理解OpenCV中的宏定义 CVAPI(函数返回类型)

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 读代码时看到语句 CVAPI(IplImage* ...

  5. windows对话框窗口DialogBox模式对话框、EndDialog、CreateDialog非模式对话框、DestroyWindow、WM_INITDIALOG

    普通窗口:自定义函数调用缺省函数 wndProc(-) { - DefWindowProc(-); } 对话框窗口:缺省函数 调用自定义函数 缺省函数(-){ - 自定义函数(-) - } 对话框原理 ...

  6. 宏的本质以及宏(包括函数式宏) 没有返回值概念

    由什么问题而引申的: 字符串"XX\\ENM\\USB"中的XX是会变的,想写一个宏定义来表示该字符串.首先,想到用#define STR(x)   x"\\ENM\\U ...

  7. 宏定义和函数有何区别

    宏在预处理阶段完成替换,之后被替换的文本参与编译,相当于直接插入了代码,运行时不存在函数调用,执行起来更快:函数调用在运行时需要跳转到具体调用函数.函数调用需要开辟和释放栈空间带来开销(存在函数调用压 ...

  8. C语言中宏定义和函数的区别

    前言 在C语言中,对于一些常用或通用的代码段的封装可以有两种方式:函数和宏定义. 这篇博客就来带大家梳理一下对于这两种方式我们在使用时应该如何抉择,以及它们的区别和优缺点. 宏定义和函数的区别 从程序 ...

  9. C++创建桌面应用程序:处理对话框DialogBox

    VS2019新建C++桌面向导: // Project1.cpp : 定义应用程序的入口点. //#include "framework.h" #include "Pro ...

最新文章

  1. Jmeter将JDBC Request查询结果作为下一个接口参数方法
  2. checksum table 【转】
  3. kotlin学习笔记——泛型及reified函数
  4. tf.clip_by_value()
  5. 第一:MySQL+MyBatis实现对测试用例数据的读取(接口自动化落地)
  6. Eclipse启动Tomcat时,45秒超时解决方案
  7. Python统计txt文件中的英文单词个数
  8. 2021-09-07218. 天际线问题
  9. R语言查找指定值的位置(行列)1
  10. 永川机器人博览会门票_2018世界机器人博览会门票价格
  11. 如何使用虚拟机运行“小HomeKit”智汀家庭云
  12. 如何获取CSDN积分(下载分)
  13. Unity Shader入门精要第四章:学习Shader 所需的数学基础--坐标空间
  14. mysql(.msi)下载、安装及配置教程
  15. 使用java socket实现一个简单的一对多聊天室
  16. android+归属地+数据库,「Android」来去电显示归属地、归属地查询的小程序。
  17. 用DW制作简单的浮动广告
  18. PubMed 文献下载流程,收费文献下载办法
  19. 微信朋友圈很多好友都变成长颈鹿头像是怎么回事?
  20. 微信扫码支付代理怎么办理?有多大发展空间

热门文章

  1. BUUCTF[GYCTF2020]Blacklist
  2. 兄弟俩今年的年龄和是35岁,当哥哥像弟弟现在这样大时,弟弟的年龄恰好是哥哥年龄的一半,哥哥今年几岁?
  3. java replica set_Kubernetes对象之ReplicaSet
  4. uni-app 打开外部网页地址 web url
  5. 玩转高并发,17年开发经验架构师,历时三年编写Java高并发三部曲
  6. 原生java读取properties与spring中@value、@ConfigurationProperties读取配置文件
  7. android平台应用GPIO模拟IR控制车载DTV
  8. Android之实现手机号码拦截
  9. UI自动化测试环境搭建 Python+Selenium+RobotFramework
  10. STM32FSMC扩展SRAM