MFC CDialog::Create问题
我要实现一个带进度对话框的线程,基类是CWinThread的派生,主要完成的功能是线程启动时调用Dialog::Create创建一个对话框,但是我现在在基类中调用CDia...
我要实现一个带进度对话框的线程,基类是CWinThread的派生,主要完成的功能是线程启动时调用Dialog::Create创建一个对话框,但是我现在在基类中调用CDialog::Create(MyProcess::IDD,父窗口指针)是总是报错,DEBUG进去也没发现什么问题啊,有高人指点一下不
把父窗口指针改成NULL了还是出错
而且我不能把父窗口NULL了啊,他的析构函数还要给父窗口发MESSAGE
兄弟你真好,每次都回答我问题,因为我之前把这个问题跳过去了,后面的代码越来越多。。改起来比较麻烦啊,要么你留个邮箱?我把代码发过去你帮我改改? 展开
把父窗口指针改成NULL了还是出错
而且我不能把父窗口NULL了啊,他的析构函数还要给父窗口发MESSAGE
兄弟你真好,每次都回答我问题,因为我之前把这个问题跳过去了,后面的代码越来越多。。改起来比较麻烦啊,要么你留个邮箱?我把代码发过去你帮我改改? 展开
1个回答
展开全部
把父窗口指针去掉。
----
贴几段代码,可以正常运行的
---progthread.h
class CProgThread : public CWinThread
{
...
virtual BOOL InitInstance();
CProgDialog m_dlg;
};
---progthread.cpp
BOOL CProgThread::InitInstance()
{
// TODO: perform and per-thread initialization here
m_dlg.Create(CProgDialog::IDD, NULL);
m_dlg.ShowWindow(SW_SHOWNORMAL);
return TRUE;
}
---xxx.cpp找个地方启动线程就行
xxx()
{
AfxBeginThread(RUNTIME_CLASS(CProgThread));
}
----
对补充的说明:
你可以在对话框中增加一个新的指针变量来保存要传过来的“父窗口”,但是别把它传给Create,例如上面代码中Create之前添加:
m_dlg.m_pOtherDlg = pOtherDialog;
----
贴几段代码,可以正常运行的
---progthread.h
class CProgThread : public CWinThread
{
...
virtual BOOL InitInstance();
CProgDialog m_dlg;
};
---progthread.cpp
BOOL CProgThread::InitInstance()
{
// TODO: perform and per-thread initialization here
m_dlg.Create(CProgDialog::IDD, NULL);
m_dlg.ShowWindow(SW_SHOWNORMAL);
return TRUE;
}
---xxx.cpp找个地方启动线程就行
xxx()
{
AfxBeginThread(RUNTIME_CLASS(CProgThread));
}
----
对补充的说明:
你可以在对话框中增加一个新的指针变量来保存要传过来的“父窗口”,但是别把它传给Create,例如上面代码中Create之前添加:
m_dlg.m_pOtherDlg = pOtherDialog;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询