MFC
蜗牛lx
想,都是问题,做,才是答案。
展开
-
CResourceException MFC程序GDI对象泄漏过程剖析
优化程序之后发现程序运行一段时间后,就莫名奇妙的崩溃退出,并没有弹出任何信息。通过调试程序后发现CResourceException异常,通过网上查找才知道是GDI对象泄露。凡是CreateXX的,最后一定要DeleteObject或者DeleteXXX。 打开任务管理器发现GDI对象不断增加,且数量到达9999后程序开始异常。因此判断程序可能存在GDI对象泄漏,即创...转载 2018-10-21 20:59:21 · 1914 阅读 · 0 评论 -
MFC提供的CMemDC类的使用方法
CMemDC是一个很经典的内存DC,实现了MFC的双缓冲绘图。不能直接使用CMemDC dcMem(*GetDC(), this),会造成整个对话框黑屏。应该这样使用: CDC* pDCPaint; pDCPaint = NULL; CMemDC memDC(*pDCPaint, this); CDC* pDC = &memDC.GetDC(); ...转载 2018-10-21 20:59:59 · 2296 阅读 · 0 评论 -
处理鼠标离开窗口的消息 (WM_MOUSELEAVE)
WM_MOUSELEAVE 是鼠标离开窗口时发出的消息,但是这个消息与普通的鼠标消息不同,要收到WM_MOUSELEAVE消息必须先调用TrackMouseEvent,并且每调用一TrackMouseEvent 窗口只能收到一次WM_MOUSELEAVE,也就说如果要获得WM_MOUSELEAVE消息的话,当鼠标重新进入窗口时必须调用一次TrackMouseEvent。测试鼠标是否在窗口内,以...转载 2018-10-21 21:02:03 · 1336 阅读 · 0 评论 -
控件不响应消息的解决办法及PreTranslateMessage 消息截获
1.注意看控件的属性,在资源视图中发现有Notify这个属性,一定要设置成TRUE,比如Static控件。2.控件是否获取到焦点,没有获取到可以使用SetFocus()函数得到焦点。3.下断点调试。通过PreTranslateMessage( MSG* pMsg ),看是否有该消息。PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,...转载 2018-10-21 21:03:29 · 3891 阅读 · 0 评论 -
MFC 字体创建
1.第一种 font.CreateFont(160, 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DON...转载 2018-10-21 21:05:45 · 1836 阅读 · 0 评论 -
MFC编辑框:回车得到输入的数据
重写对话框的PreTranslateMessage函数,在里面判断是否俺了回车键,如果是的话再判断焦点是不是在编辑框里面,可以用GetFocus 这个函数判断焦点是否在那个编辑框里面:BOOL CTestDlg::PreTranslateMessage(MSG* pMsg){ if (WM_KEYFIRST <= pMsg-> message && pMsg...原创 2018-10-21 21:09:29 · 1600 阅读 · 0 评论 -
MFC中OnHScroll和OnVScroll只提供16位的位置数据
SetScrollRange()、SetScrollInfo()两种思路实现及其两者优劣比较,OnHScroll和OnVScroll只提供16位的位置数据。GetScrollInfo和SetScrollInfo提供32位的滚动条位置数据。因此,一个应用程序在处理GetScrollInfo或SetScrollInfo时,可以调用GetScrollInfo来获取32位的滚动条位置数据。用GetScro...转载 2018-10-21 21:10:23 · 683 阅读 · 0 评论 -
定时消失的对话框API函数 – MessageBoxTimeout
我们在微软官方文档上找不到MessageBoxTimeout()的记录,它是由user32.dll导出的。使用时只需在.cpp文件中包含了以下部分,就可以调用MessageBoxTimeout。// 添加MessageBoxTimeout支持extern "C"{int WINAPI MessageBoxTimeoutA(IN HWND hWnd, IN LPCSTR lpT...转载 2018-10-21 21:13:12 · 1350 阅读 · 0 评论