如何使用客户区内的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
}
答案 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)。