MFC CDialog::Create问题

我要实现一个带进度对话框的线程,基类是CWinThread的派生,主要完成的功能是线程启动时调用Dialog::Create创建一个对话框,但是我现在在基类中调用CDia... 我要实现一个带进度对话框的线程,基类是CWinThread的派生,主要完成的功能是线程启动时调用Dialog::Create创建一个对话框,但是我现在在基类中调用CDialog::Create(MyProcess::IDD,父窗口指针)是总是报错,DEBUG进去也没发现什么问题啊,有高人指点一下不
把父窗口指针改成NULL了还是出错

而且我不能把父窗口NULL了啊,他的析构函数还要给父窗口发MESSAGE

兄弟你真好,每次都回答我问题,因为我之前把这个问题跳过去了,后面的代码越来越多。。改起来比较麻烦啊,要么你留个邮箱?我把代码发过去你帮我改改?
展开
 我来答
wawoo2007
2008-03-10 · TA获得超过626个赞
知道小有建树答主
回答量:465
采纳率:0%
帮助的人:637万
展开全部
把父窗口指针去掉。
----
贴几段代码,可以正常运行的
---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;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式