MFC多线程编程
发布日期:2021-07-14 20:03:21 浏览次数:5 分类:技术文章

本文共 1492 字,大约阅读时间需要 4 分钟。

具体来说是:

在MFC中调用attach的时候

有个宏叫ASSERT_VALID(),这个方法不允许访问非本线程创建的继承于。

在CWnd函数里面有一个Valid()的静态方法,检测当前线程的MFC对象指针,是否在当前线程的Map中;

 

下面就是这个模块中线程状态结构体:

// AFX_MODULE_THREAD_STATE (local to thread *and* module)class AFX_MODULE_THREAD_STATE : public CNoTrackObject{public:	AFX_MODULE_THREAD_STATE();	virtual ~AFX_MODULE_THREAD_STATE();	// current CWinThread pointer	CWinThread* m_pCurrentWinThread;	// list of CFrameWnd objects for thread	CTypedSimpleList
m_frameList; // temporary/permanent map state DWORD m_nTempMapLock; // if not 0, temp maps locked CHandleMap* m_pmapHWND; CHandleMap* m_pmapHMENU; CHandleMap* m_pmapHDC; CHandleMap* m_pmapHGDIOBJ; CHandleMap* m_pmapHIMAGELIST; // thread-local MFC new handler (separate from C-runtime) _PNH m_pfnNewHandler;#ifndef _AFX_NO_SOCKET_SUPPORT // WinSock specific thread state HWND m_hSocketWindow;#ifdef _AFXDLL CEmbeddedButActsLikePtr
m_pmapSocketHandle; CEmbeddedButActsLikePtr
m_pmapDeadSockets; CEmbeddedButActsLikePtr
m_plistSocketNotifications;#else CMapPtrToPtr* m_pmapSocketHandle; CMapPtrToPtr* m_pmapDeadSockets; CPtrList* m_plistSocketNotifications;#endif#endif // common controls thread state CToolTipCtrl* m_pToolTip; CWnd* m_pLastHit; // last window to own tooltip INT_PTR m_nLastHit; // last hittest code TOOLINFO* m_pLastInfo; // last TOOLINFO structure INT_PTR m_nLastStatus; // last flyby status message CControlBar* m_pLastStatus; // last flyby status control bar};

 

转载地址:https://blog.csdn.net/daojin505/article/details/76812038 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:仿照标准库做了个hashmap!不容易啊。
下一篇:COM中的IDL语言的难点之接口指针

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年03月01日 21时29分38秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

HDC2020开发者大会鸿蒙,华为开发者大会HDC 2020官宣 或推鸿蒙2.0 2019-04-21
鸿蒙OS渲染图,鸿蒙OS前端开发入门指南:网络图片_Image渲染网络图片 2019-04-21
汽车鸿蒙音响怎么调,西玛怎样调车载音响均衡器 西玛调试车载音响步骤 2019-04-21
系统内部错误 Android,在Android中使用网络服务发现的内部错误 2019-04-21
android下载文件地址,安卓迅雷下载的文件在哪里迅雷下载文件存放位置-独木成林... 2019-04-21
android 覆盖安装广播,android监听本身应用覆盖安装 2019-04-21
android java拷贝文件,在android中将数据从一个文件复制到另一个文件非常慢? 2019-04-21
html页面判断是手机端访问,JS 判断手机端和pc端后跳转对应页面 2019-04-21
如何用html5 canvas制作子画面动画,如何用HTML5 Canvas制作子画面动画 2019-04-21
html判断文本有多少字符,文本域字符数判断(2010年12月30日更新) 2019-04-21
postman怎么导出测试用例_postman---postman文件夹介绍以及批量执行用例 2019-04-21
宝塔面板怎么运行python_在宝塔面板配置Nginx的步骤 2019-04-21
als算法参数_Spark2.0协同过滤与ALS算法介绍 2019-04-21
hamming weight_popcount或者hamming weight(二进制1的个数问题) 2019-04-21
python窗体设置italic_007萝卜头学python:Python GUI 之Tkinter 2019-04-21
h5实现网页内容跟随窗口大小移动_HTML5使用四种方法实现移动页面自适应手机屏幕的方法总结... 2019-04-21
java set spliterator_Java TreeSet spliterator()方法 2019-04-21
java拆解_深入拆解Java虚拟机视频教程 2019-04-21
java integer 不变模式_Java代码的变与不变 2019-04-21
java guava 使用_Java8-Guava实战示例 2019-04-21