【发布时间】:2013-12-14 22:17:46
【问题描述】:
是否有某种自动化方法可以将声明性.rc 对话框定义格式(及其内容)转换为源代码的 sn-ps,这些源代码调用像 CreateWindow 这样的运行时 API 以创建具有相同布局和内容的对话框?最好是在 Visual Studio 中?
【问题讨论】:
标签: visual-studio winapi visual-c++ user-interface
是否有某种自动化方法可以将声明性.rc 对话框定义格式(及其内容)转换为源代码的 sn-ps,这些源代码调用像 CreateWindow 这样的运行时 API 以创建具有相同布局和内容的对话框?最好是在 Visual Studio 中?
【问题讨论】:
标签: visual-studio winapi visual-c++ user-interface
对话框资源不生成代码。它们被传递给 CreateDialogIndirect 和类似的 API,它们解释 DLGTEMPLATE 并构造调用 CreateWindow 的单独控件。
没有工具可以将对话资源脚本转换为冗余的CreateWindow 调用序列。 DLGTEMPLATE 的唯一用途是传递给 CreateDialogIndirect。
【讨论】:
CreateDialogIndirect 已经实现了你想要的所有功能。还有一些你甚至不知道的,即相对于正在使用的对话框字体缩放对话框。
CreateWindow,您只需调用CreateDialog 并调整您的窗口过程实现以符合DialogProc。我根本不明白WM_CREATE 是如何参与其中的。