MFC-GetMainWnd获取主窗口指针

 

    CWinApp* pwin = AfxGetApp();//获取当前应用进程的指针
    CWnd* pWnd = pwin->GetMainWnd();//获取主窗口指针
    CGetMainWndDlg* pDlg = (CGetMainWndDlg*)pWnd;
    //主窗口指针转化成对话框类指针
    pDlg->SetWindowText(_T("练习"));

    CWnd* pWnd1 = pWnd->GetDlgItem(IDC_BUTTON1);//获取按钮的句柄
    pWnd1->SetWindowText(_T("获取进程指针"));

 

UINT func1(LPVOID pParam)   //线程函数
{
    CString str;
    for (int i = 0; i < 10;i++) {
        str.Format(_T("i=%d\r\n"), i);
        ::OutputDebugString(str);
        Sleep(500);
    }
    
    return 0;
}


void CGetMainWndDlg::OnBnClickedButton2()
{
    
    CWinThread* pp = AfxBeginThread(func1, LPVOID(456), 0, 0, 0, NULL);//创建工作线程
    CWnd* pWnd = pp->GetMainWnd();//获得线程所在的主窗口指针

    CWnd* pWnd1 = pWnd->GetDlgItem(IDC_BUTTON2);//获取按钮的句柄
    pWnd1->SetWindowText(_T("线程主窗口"));


}

 

 

 

 

 

 

 

 

posted @ 2023-04-12 11:47  天子骄龙  阅读(168)  评论(0)    收藏  举报