根据Microsoft的此链接,应该可以定义CButton并指定其父窗口(CDialog),而不必让CButton作为Dialog的成员,但是我做不到。
因此,如果myButton是CDialog派生(myCDialog)类的成员,则以下代码有效:
BOOL myCDialog::OnInitDialog() {
CDialog::OnInitDialog();
myButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(10, 20, 100, 50), this, 1000);
...
}
但是当谈到动态创建时,我希望能够动态创建尽可能多的按钮(我无法将它们定义为类成员,因为我不知道有多少个!)
我已经在另一个类中尝试了以下代码,并以myCDialog作为父窗口的指针,类似于链接中显示的代码,但是失败了:
CButton myButton;
myButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(10, 20, 100, 50), pmyCDialog, 1000);
因此,如何在不将动态控件定义为CDialog类成员的情况下创建动态控件?
“(我无法将它们定义为班级成员,因为我不知道有多少个!)”
您可以将CButton或CButton *的数组或向量作为类成员。当您调用它们的“创建”时,为其分配一个不同的ID。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句