Yng*_*and 6 mfc dialog visual-studio visual-c++
我想知道Visual Studio如何将MFC CDialog派生类与其对应的对话框资源相关联.我不感兴趣的连接是如何在运行时作出(如询问这里),而是在设计时.
当我向对话框添加消息处理程序时,它如何知道要将处理程序添加到哪个类.此外,是否可以将多个CDialog派生类与相同的对话框资源相关联,反之亦然?
我在项目目录中搜索了IDD_SOMEDIALOG字符串但是只找到了它SomeDialog.h,resource.h并且Project.rc在预期的位置,所以我猜它以某种方式推断出这些文件的连接,很可能是枚举SomeDialog.h:
// in class CSomeDialog:
enum { IDD = IDD_SOMEDIALOG };
Run Code Online (Sandbox Code Playgroud)
我主要是出于好奇而问这个问题.
这取决于开发工作室的版本。
在 VS6 中,它全部保存在 CLW(类向导文件)中。
在较新版本的开发工作室中,它不再使用 CLW,而且我具体不知道它是如何知道的,但我怀疑它是实时解析,而不是使用缓存的 CLW。
至于使用相同资源的多个派生对话框,可以手动完成。您可以复制创建的类文件并重命名它们,从标头中删除枚举,并将源文件中 IDD 枚举的使用编辑为实际的对话框资源 ID (IDD_SOMEDIALOG)。
AFAIK Dev Studio 一次只会“愉快地”处理一个对话框的一个类。根据我的经验,尝试重用这样的对话框资源只会导致与 MFC 和 Dev Studio 发生一些争执,因为他们本来不想这样做。
| 归档时间: |
|
| 查看次数: |
2648 次 |
| 最近记录: |