在MFC应用程序中创建控件

时间:2015-02-06 16:27:20

标签: mfc

如何使用客户区内的CButton类创建一个按钮。
我刚试过但控件没有显示在客户区。

我用来创建按钮的代码

void CcontrolsView::OnDraw(CDC* pDC)
{
CcontrolsDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
    return;

CButton cb;
cb.Create(BS_PUSHBUTTON,CRect(20,20,100,100),this,10000);
// TODO: add draw code for native data here
}

2 个答案:

答案 0 :(得分:1)

1不要在OnDraw()方法中执行此操作。在那里为WM_CREATE添加一个消息处理程序,而不是在那里进行。

2不要使用基于堆栈的对象来创建按钮。我建议将一个CButton成员添加到名为m_Button(或其他)的视图类中。

在CcontrolsView :: OnCreate()方法中添加如下代码:

m_Button.Create(BS_PUSHBUTTON|WS_VISIBLE|WS_CHILD,CRect(20,20,100,100),this,10000);

答案 1 :(得分:-1)

你需要构造一个新的CButton,然后通过设置它的父级或所有者(我忘记哪个 - 设置两个!)和其他属性(如合理的位置)将其添加到对话框中,然后在其上调用ShowWindow(SW_SHOW)。