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

浙公网安备 33010602011771号