随笔分类 -  WIN32/MFC

摘要:以代码可知,MFC版本80, 非Unicode, 使用动态链接,调试版,五个窗口类名为: AfxWnd80d AfxControlBar80d AfxMDIFrame80d AfxFrameOrView80d AfxOleControl80d 其它版本的类推... 阅读全文
posted @ 2017-04-03 16:24 shanql 阅读(447) 评论(0) 推荐(0)
摘要:在看MFC源码的过程中,有个地方一直不解,看如下代码 注意Create函数参数pParentWnd如果传NULL进来,pParentWnd->GetSafeHwnd并不会报错。开始一看,吓我一大跳,怎么不出现内存访问违规呢,奇怪了。经过试验,还是自己的知识太欠缺了啊。 原因还得在代码中找,看下Get 阅读全文
posted @ 2017-04-03 15:28 shanql 阅读(371) 评论(0) 推荐(0)
摘要:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion 阅读全文
posted @ 2017-04-02 17:07 shanql 阅读(294) 评论(0) 推荐(0)
摘要:从代码分析原因吧: OnIdle函数在MFC的CWinThread::Run函数中被调用,如下 CWinThread::Run又在AfxWinMain中被调用, 要运行CWinThread::Run,则需要pThread->InitInstance返回才行,但模态对话框程序有点特殊,会直接阻塞在Do 阅读全文
posted @ 2017-03-21 22:12 shanql 阅读(1450) 评论(0) 推荐(0)
摘要:一、绘制透明背景的位图,windows提供了一个API函数 TransparentBlt The TransparentBlt function performs a bit-block transfer of the color data corresponding to a rectangle 阅读全文
posted @ 2017-03-19 18:52 shanql 阅读(704) 评论(0) 推荐(0)
摘要:SetBkColor The SetBkColor function sets the current background color to the specified color value, or to the nearest physical color if the device cann 阅读全文
posted @ 2017-03-19 13:45 shanql 阅读(2504) 评论(0) 推荐(0)
摘要:以下列代码为例 以上代码最后被注释的部分,按照MSDN上的说法,要将之前的GDI对象SelectObjec回去,防止CBitmap bmpMemBmp中的GDI对象删除失败。 CBitmap析构函数调用基类的~CGdiObject,~CGdiObject中会调用 ::DeleteObject函数来删 阅读全文
posted @ 2017-03-18 22:17 shanql 阅读(489) 评论(0) 推荐(0)
摘要:使用CreateCompatibleDC 创建了内存DC之后,要再调用SelectObject选择一张位图放入此DC,然后才可以使用此DC进行绘制,之后绘制的数据会保存在内存中, 详细说明看后文。 在MFC中使用内存DC例子: 以下内容来自msdn: CreateCompatibleDC The C 阅读全文
posted @ 2017-03-18 20:13 shanql 阅读(713) 评论(0) 推荐(0)
摘要:1、用类CBitmap加载位图 2、创建内存DC, 将位图选进此内存DC 3、调用BitBlt将内存DC的内容拷贝到其它DC(通知是显示DC) 例子(来自MSDN): 阅读全文
posted @ 2017-03-18 16:22 shanql 阅读(1334) 评论(0) 推荐(0)
摘要:在OnPaint函数中,用CClientDC dc(this)代替CPaintDC(this)后,界面不断闪烁。 说明:CClientDC是对GetDC的使用封装, CPaintDC是对BeginPaint/EndPaint的使用封装 原因:BeginPaint/EndPaint会将无效区域设置为N 阅读全文
posted @ 2017-03-18 15:39 shanql 阅读(665) 评论(0) 推荐(0)