MFC m_pMainWnd

MFC m_pMainWnd

CWinThread::m_pMainWnd

该成员变量存储线程主窗口对象。当和m_pMainWnd相关的窗口被关闭后,MFC会自动终止线程。如果该线程是应用程序主线程,程序也将会被终止。如果该数据成员为NULL,应用程序CWinApp对象的主窗口将用来决定什么时候去终止线程。m_pMainWnd是一个CWnd*类型的public变量。

很明显,需要在重载InitInstance时为m_pMainWnd赋值。在工作线程中,m_pMainWnd自动继承其父线程的值。

补充:只有CWinThread对象才有m_pMainWnd

class CWinThread : public CCmdTarget

{

    DECLARE_DYNAMIC(CWinThread)

public:

// Constructors

    CWinThread();

    BOOL CreateThread(DWORD dwCreateFlags = 0, UINT nStackSize = 0,

        LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL);

// Attributes

    CWnd* m_pMainWnd;       // main window (usually same AfxGetApp()->m_pMainWnd)

    CWnd* m_pActiveWnd;     // active main window (may not be m_pMainWnd)

    BOOL m_bAutoDelete;     // enables 'delete this' after thread termination

   ..............

}

   //在用户界面线程中创建非模态对话框

    if (!pDlg.Create(IDD_DIALOG1, NULL))

    {

        AfxMessageBox("窗口创建失败!");

    }

    else

    {

        pDlg.ShowWindow(SW_SHOW);

        m_pMainWnd=&pDlg;

    }

在创建用户界面线程时,该句一定要加上。否则在线程不会得到释放!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值