Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mfc中不显示动态创建的按钮_Mfc_Cbutton - Fatal编程技术网

mfc中不显示动态创建的按钮

mfc中不显示动态创建的按钮,mfc,cbutton,Mfc,Cbutton,所以我有这个密码 CButton details; details.Create(_T("details"),WS_CHILD|WS_VISIBLE|WS_TABSTOP|BS_PUSHBUTTON,CRect(120,100,100,30), this, 15000); 但它什么也不做(创建按钮创建后不可见)。我错过了什么 编辑:代码位于基于对话框的应用程序的OnInitDialog函数中。它应该做的是显示按钮。您的CButton是使用自动存储持续时间创建的。因此,当OnInitDialog

所以我有这个密码

CButton details;
details.Create(_T("details"),WS_CHILD|WS_VISIBLE|WS_TABSTOP|BS_PUSHBUTTON,CRect(120,100,100,30), this, 15000);
但它什么也不做(创建按钮创建后不可见)。我错过了什么


编辑:代码位于基于对话框的应用程序的OnInitDialog函数中。它应该做的是显示按钮。

您的CButton是使用自动存储持续时间创建的。因此,当OnInitDialog返回时,它将被销毁。(在对话框可见之前)将CButton改为成员变量。

您提供的
correct
下的值不正确,必须
correct(120100220130)
这取决于声明
CButton详细信息!
您必须声明
CButton详细信息作为常规实例(非本地实例)

定义
c按钮的详细信息实例作为常规,所以您的问题将得到解决!
以下代码工作100%:

#define BBB 10000
CButton c;
void CThreadsDlg::OnBnClickedButton1()
{
    bool a = c.Create(_T("new button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(100, 100, 220, 230), this, BBB);
}

如果创建了
c
按钮,
a
变量将为
true
我的经验:如果您的对话框继承自CDHtmlDialog,则不会显示任何内容,但可以正常使用CDialog。因此,更改OnInitDialog()中的第一行

//CDHtmlDialog::OnInitDialog(); CDialog::OnInitDialog();
当然,button变量应该是全局变量或类成员,而不是局部变量

这个问题不能如实回答。您需要提供更多的上下文。
详细信息在哪里声明?它是一个班级成员吗?局部变量?您在哪里调用
Create
?考虑提供一个说明问题的方法。 //CDHtmlDialog::OnInitDialog(); CDialog::OnInitDialog();