MFC-AfxGetApp获取当前进程的指针
CWinApp* pwin = NULL; void CAfxGetAppDlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 pwin= AfxGetApp();//获取当前应用进程的指针 //确切的说是获取由CWinApp派生出类的对象 //通过这个指针可以访问到这个进程中的对象 CWnd* pWnd = pwin->GetMainWnd();//获取主窗口指针 CAfxGetAppDlg* pDlg= (CAfxGetAppDlg*)pWnd; //主窗口指针转化成对话框类指针 pDlg->SetWindowText(_T("练习")); } void CAfxGetAppDlg::OnBnClickedButton2() { HANDLE handle = NULL; HANDLE handle1 = NULL; pwin = AfxGetApp(); handle=AfxGetApp()->m_pMainWnd;//获得主窗口的句柄 CString str; str.Format(_T("主线程句柄=%d\r\n"), handle); ::OutputDebugString(str); handle1 = AfxGetMainWnd();//获得当前线程窗口句柄 str.Format(_T("当前线程句柄=%d\r\n"), handle1); ::OutputDebugString(str); } UINT func1(LPVOID pParam) //线程函数 { CString str; HANDLE handle3 = NULL; HANDLE handle = NULL; for (int i = 0; i < 10;i++) { str.Format(_T("n=%d\r\n"), i); ::OutputDebugString(str); handle3= AfxGetMainWnd(); str.Format(_T("当前子线程句柄=%d\r\n"), handle3); ::OutputDebugString(str); pwin = AfxGetApp(); handle = AfxGetApp()->m_pMainWnd;//获得主线程的句柄 str.Format(_T("主线程句柄=%d\r\n"), handle); ::OutputDebugString(str); Sleep(1000); } return 0; } void CAfxGetAppDlg::OnBnClickedButton3() { CWinThread* pp = AfxBeginThread(func1, LPVOID(456), 0, 0, 0, NULL); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
2022-04-12 halcon-精度
2022-04-12 halcon-char_threshold阈值分割提取字符
2019-04-12 QWidget-控件层级关系
2019-04-12 QWidget扩充父子关系
2019-04-12 python-内置函数