AfxGetApp()->GetMainWnd()和AfxGetMainWnd()的区别
来源:互联网 发布:mac keeper 破解版 编辑:程序博客网 时间:2024/05/16 10:04
1. 获取的是主线程的窗口句柄。
2. AfxGetMainWnd()获取的是所在线程的窗口句柄。
在单线程下他们获得是同一个窗口,多线程下则不是。
下面是一个线程函数:
void /*Cthread1Dlg::*/threadFunc()
{
CTime time;
CString strTime;
g_bRun = true;
while(g_bRun)
{
time = CTime::GetCurrentTime();
strTime = time.Format("%H:%M:%S");
//HWND hw = AfxGetMainWnd()->m_hWnd; //(1)
//HWND hw =AfxGetApp()->GetMainWnd()->GetSafeHwnd(); //(2)
::SetDlgItemText(hw, IDC_TIME, strTime);
Sleep(1000);
}
}
上面注掉的代码中,有一个是错的,到底是哪一个?为什么?
答案是(1),因为该线程并没有创建窗口,而试图访问为赋值的变量。
而(2)是没问题的,访问的主窗口的穿够句柄!
0 0
- AfxGetApp()->GetMainWnd()和AfxGetMainWnd()的区别
- AfxGetApp()->GetMainWnd()和AfxGetMainWnd()的区别
- AfxGetApp()->GetMainWnd与AfxGetMainWnd的区别
- AfxGetApp->GetMainWnd()与AfxGetMainWnd的不同
- AfxGetApp->GetMainWnd()与AfxGetMainWnd
- AfxGetApp->GetMainWnd()与AfxGetMainWnd
- AfxGetApp->GetMainWnd()与AfxGetMainWnd
- AfxGetApp->GetMainWnd()与AfxGetMainWnd
- AfxGetApp->GetMainWnd()与AfxGetMainWnd
- AfxGetApp->GetMainWnd()与AfxGetMainWnd
- AfxGetApp()->m_pMainWnd和AfxGetMainWnd() 的区别
- AfxGetApp()->m_pMainWnd和AfxGetMainWnd() 的区别
- AfxGetApp()->m_pMainWnd和AfxGetMainWnd() 的区别
- 多线程中AfxGetApp()->m_pMainWnd和AfxGetMainWnd() 的区别?
- 多线程中AfxGetApp()->m_pMainWnd和AfxGetMainWnd() 的区别?
- AfxGetApp() GetMainWnd()的使用
- 前台线程与后台线程,AfxGetApp->GetMainWnd()与AfxGetMainWnd的不同
- AfxGetApp()->m_pMainWnd和AfxGetMainWnd()
- 欢迎使用CSDN-markdown编辑器
- 手把手教你使用git
- 何谓真正的朋友
- 基于深度神经网络的视频监控系统的车辆识别构思
- 数据结构 - 串的性质和基本操作(二)
- AfxGetApp()->GetMainWnd()和AfxGetMainWnd()的区别
- [模拟]POJ 3087 Shuffle'm up
- iOS开发中如何高效使用MVC设计模式
- 昆明什么地方可以有偿捐献肾
- 图床:使用新浪微博相册
- CentOS7 安装wget
- iOS 7、iOS 8屏幕适配
- Nodejs学习路线图
- WebSphere Message Broker 介绍