2010-06-09 41 views
0

我想向使用Visual Studio资源编辑器创建的对话框添加一个简单的面板,但资源编辑器不允许这样做 - 我需要添加自己的CWnd作为对话小孩。但是,我想我必须手动使用CWnd :: Create,并为类和窗口传入名称。使用resource.h中的ID手动创建对话框子窗口

我想创建一个类似于IDC_MYPANEL的ID,并尽可能地添加窗口,使其工作方式与模板中定义的一样。什么是正确的方式来做到这一点,什么是最好的MFC类作为一个简单的面板使用...只使用CWnd本身?

回答

1

你是什么意思'一个简单的面板'?如果是自定义控件,则从CWnd派生,重写Create()并用NULL作为类名称调用CWnd :: Create(),以便MFC自己创建,然后向resource.h中添加一行并使用控件的IDC_XXX值。如果它是子对话框,并带有控件,则从CDialog派生出来,并使用您在对话框中定义的IDD调用CDialog :: Create()。

在运行时创建控件的唯一区别是,在OnInitDialog中,您执行一些Create()和初始化操作,并且不包含该控件的DDX_Control()行。其余的一切都是一样的。

+0

我的意思是我想要一个用于放置控件的平面阴影矩形。理想情况下,我有滚动支持和改变背景颜色的能力。现在我用一个窗口类“#32770”(对话框)使用CWnd,所以我可以设置边框。 – 2010-06-10 15:43:07

相关问题