CreateDialog Win32 API调用的一个小问题
来源:互联网 发布:linux 查看目录挂载点 编辑:程序博客网 时间:2024/05/17 09:16
在老版本的VC编译器上,关键调用是以下2句:
InitCommonDialogs();
HWND hwndDialog = CreateDialog(hInstance, "IDD_XXX", ...);
但是在新版本的VS上,InitCommonDialogs这个API似乎已经没了,而CreateDialog还有,问题是,对话框的界面出不来,什么原因呢?
推测InitCommonDialogs这个API注册了默认的系统对话框窗口类,这样CreateDialog的第二个参数才能以字符串的形式引用,现在InitCommonDialogs虽然没了,但必须要有一种机制传进正确的窗口类。。。
按照这个思路再次确认资源文件,测试项目首先通过resource.h引用.rc资源文件,而.rc里定义了一个名字叫IDD_XXX的对话框资源,这个地方没有问题,
但是,资源文件里的IDD_XXX实质上是整数类型,而CreateDialog的第2个参数要求的却是字符串,这个地方似乎有问题。
再次确认MSDN里的API文档说明,哈哈,果然,有一个MAKEINTRESOURCE宏,可以把整数类型的IDD_XXX值转换为字符串类型(这里我的感觉是新版本的Win32 运行时环境使用了不同的窗口类字符串机制),改成下面的写法就可以了:
HWND hwndDialog = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_XXX), ...);
InitCommonDialogs不要需要。
0 0
- CreateDialog Win32 API调用的一个小问题
- 监视API调用的一个小程序
- win32 CreateDialog和DialogBox
- C#调用WIN32的API
- Win32汇编 API的调用
- win32 api 的调用规范
- 简单的使用CreateDialog的Win32程序框架
- 简单的使用CreateDialog的Win32程序框架
- 简单的使用CreateDialog的Win32程序框架
- 微信小程序外部API调用方法,遇到的一个小问题
- 由MessageBox透视Win32 API的调用
- C#中调用WIN32的API
- c# 中调用win32的api函数
- Win32-API函数调用的约定
- C#中调用WIN32的API
- 由MessageBox透视Win32 API的调用
- 调用WIN32 API
- c#调用Win32 API
- QUST程序设计赛B题:小剑与小雨的宿命对决!!!!!
- 关于Installshield里一些常见问题的解答—艾泽拉斯之海洋女神出品
- Linux下Apache PHP Mysql默认安装路径
- Linux下的虚拟光驱
- Velocity——#foreach指令 $velocityCount
- CreateDialog Win32 API调用的一个小问题
- 新浪微博技术架构
- InstallShield 自己总结常用操作
- SqlServer转换为Mysql的一款工具推荐(mss2sql)
- C++ VS C#(1):注释,变量,控制台输出
- iOS 7.0.4 和 7.1 上计算文字高度有误差的解决方法
- [Erlang]图解分析Mochiweb web server
- WINCE6.0下开始菜单的“挂起(suspend)”是否可见及阻止系统进入睡眠模式
- Linux设备树的用法