我想在使用Visual Studio资源编辑器创建的对话框中添加一个简单的面板,但资源编辑器不允许这样做 - 我需要添加自己的CWnd作为对话框子项。不过这样我认为我必须手动使用CWnd :: Create,并为类和窗口传入名称。
我想创建一个像IDC_MYPANEL这样的ID,并尽可能添加窗口,使其像模板中定义的那样工作。什么是正确的方法,什么是最好的MFC类作为一个简单的面板使用...只使用CWnd本身?
答案 0 :(得分:1)
“简单面板”是什么意思?如果它是一个自定义控件,从CWnd派生,重写Create()并调用CWnd :: Create(),使用NULL作为类名,以便MFC自己创建,并使用控件的IDC_XXX值向resource.h添加一行。如果它是一个带有控件的子对话框,则从CDialog派生并使用您在对话框中定义的IDD调用CDialog :: Create()。
在运行时创建控件的唯一区别是在OnInitDialog中,您执行了一些Create()和初始化操作,并且您没有为该控件包含DDX_Control()行。其余的一切都是一样的。