MFC
zhouschina
学而知不足
展开
-
MFC中对象序列化技术的实现
MFC中对象序列化技术的实现1、需求对于支持序列化操作的类可以将不同类的不同对象以序列的形式写到文件中;可以通过读取序列化文件还原对应类的对应实例;针对对象的哪些内容进行序列化由对象来决定;2、需求示例2.1、需要序列化的对象对应的类l CNameclass CName:public CObject {public:转载 2013-01-15 14:33:43 · 1026 阅读 · 0 评论 -
SetFileAttributes和GetFileAttributes
设置文件或目录的属性,函数原型如下:BOOL SetFileAttributes( LPCTSTR lpFileName, DWORD dwFileAttributes); 参数: lpFileName:输入参数,为需要设置文件属性的文件或目录。 返回值: 返回BOOL值,表示是否成转载 2013-01-16 15:23:30 · 3283 阅读 · 0 评论 -
MFC异常处理机制
MFC中异常处理的语法和语义构建在标准C++异常处理语法和语义的基础之上,其解决方案为: MFC异常处理 = MFC 异常处理类 + 宏1 宏 MFC定义了TRY、CATCH(及AND_CATCH、END_CATCH)和THROW(及THROW_LAST)等用于异常处理的宏,其本质上也是标准C++的try、catch和throw的进一步强化,由这些宏的定义可知:#i转载 2013-04-05 16:30:48 · 1147 阅读 · 0 评论 -
Windows DDB和DIB技术应用(1)--DDB和DIB介绍
概述DIB设备无关位图文件,这是一种文件格式,是为了保证用某个应用程序创建的位图图形可以被其它应用程序装载或显示一样。 DIB的与设备无关性主要体现在以下两个方面:DIB的颜色模式与设备无关。例如,一个256色的DIB即可以在真彩色显示模式下使用,也可以在16色模式下使用。256色以下(包括256色)的DIB拥有自己的颜色表,像素的颜色独立于系统调色板。由于DIB不依赖于具体设备,因此可以用来原创 2013-08-29 15:58:51 · 1333 阅读 · 0 评论 -
Windows DDB和DIB技术应用(3)--图元外边矩形检测
GDI/GDI+中只有对字体的外边框的测量,而没有提供对点,线,面,曲面的外边框获取函数。下面是本人利用DIB技术编写的探测简单图元,甚至也可以探测自己定义的复杂图元的外边矩形框的函数。本人已经测试,效果很棒。 bool GetFeatureRange(void *object, //自己定义的图元对象 CRect rect, // DIB屏幕大小 CDC *pDC,原创 2013-08-29 16:39:45 · 983 阅读 · 0 评论 -
Windows DDB和DIB技术应用(2)--绘图二级缓存技术
使用DDB技术实现绘图二级缓冲CDC memDC; memDC.CreateCompatibleDC(&dc); // 建立一个与屏幕显示兼容的位图 CBitmap memBitmap; memBitmap.CreateCompatibleBitmap(&dc, rect.Width(), rect.Height()); // 将位图选人到内存显示设备中 memDC.S原创 2013-08-29 16:24:06 · 1009 阅读 · 0 评论 -
exe调用dll中的对话框防资源冲突解决之道
在编写MFC应用程序时,有时我们希望将对话框封装在dll动态库中。但当exe调用dll中对话框时:程序首先检测exe中的资源如果存在对应的对话框ID,那么dll中的对话框将采用exe中的资源进行创建生成对话框,这样就违背了我们的意愿。 1)下面情况可以正确调用dll工程中对话框:在exe工程资源中对话框ID为#define IDD_EXE_DIALOG原创 2013-09-23 20:49:27 · 2966 阅读 · 0 评论 -
MFC常用控件CListCtrl 、CSliderCtrl、CToolTipCtrl、CTreeCtrl的自绘
Window平台下MFC提供的CListCtrl 、CSliderCtrl、CToolTipCtrl、CTreeCtrl等控件大多时候是不能满足我们的需求,如果我要在改变滑动条的颜色,我要改变滑动条的背景色;我在CListCtrl中添加图片,添加一个复选框,等等等等。可是使用OnPaint自己完全重回,实现将较为费力。common control 4.7版本介绍了一个新的特性叫做Custom原创 2013-11-21 14:10:54 · 4006 阅读 · 0 评论 -
MFC 托盘编程
以VC编程中,经常涉及到托盘操作,比如为我们的程序添加托盘图标,添加托盘左键响应或右键菜单,我们常用的QQ就是个托盘程序。 好了下面我们来看下VC中托盘编程要注意些什么。首先我们要弄清楚一个结构体-NOTIFYICONDATA,这个结构体是托盘编程的关键。typedef struct _NOTIFYICONDATA { DWORD cbSize; HWND hWnd;转载 2015-01-01 23:29:53 · 751 阅读 · 0 评论