博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年6月26日

摘要: 串行化是微软提供的用于对对象进行文件I/O的一种机制,该机制在框架(Frame)/文档(Document)/视图(View) 模式中得到了很好的应用。很多人对什么是串行化、怎么使对象具有串行化能力和如何使用串行化功能等问题都不甚明了。本文试图对串行化做一个简单的解释。由于本人对串行化功能使用的也不多,不足之处敬请谅解。MFC 框架/文档/视图结构中的文件读写CFile是MFC类库中所有文件类的基类。所有MFC提供的文件I/O功能都和这个类有关。很多情况下,大家都喜欢直接调用CFile::Write/WriteHuge来写文件,调用CFile::Read/ReadHuge来读文件。这样的文件I/ 阅读全文

posted @ 2012-06-26 17:58 SmarTom 阅读(271) 评论(0) 推荐(0)

摘要: 一、序言在绝大多数的Windows应用程序中,其窗体都是使用的正规正矩的矩形窗体,例如我们常用的,“记事本”,“扫雷”,等等。矩形窗体,具有编程实现简单,风格简洁的优点,所以在普通文档应用程序和简单小游戏中使用足矣。但在某些娱乐游戏程序中使用就略显呆板些了,这时若用不规则窗体替代原先的矩形窗体,将会使这类程序更添情趣。典型的例子有windows 自代的Media Player,新版本的Media Player有个控制面板的选项,选中这些面板,播放器就以选中的面板形状出现,这时的播放器比以前版本的Media Player的古老矩形界面要生动有趣的多了。 要实现不规则窗体不是太难,知道了基本原理后 阅读全文

posted @ 2012-06-26 17:56 SmarTom 阅读(315) 评论(0) 推荐(0)

摘要: HBITMAP转成CBitmap: CBitmap* pcBmp = CBitmap::FromHandle(hBmp); CBitmap bmp; bmp.Attach(hbmp); CBitmap转成HBITMAP: HBITMAP hBmp = (HBITMAP)cBmp;CBitmap* pBmp; HBITMAP hBmp = (HBITMAP)(*pBmp);//(HBITMAP)是CBitmap类重载了的操作符. 阅读全文

posted @ 2012-06-26 17:54 SmarTom 阅读(224) 评论(0) 推荐(0)

摘要: 在刷新窗口时经常要调用重绘函数MFC提供了三个函数用于窗口重绘InvalidateRect(&Rect)Invalidate()UpdateWindow()当需要更新或者重绘窗口时,一般系统会发出两个消息WM_PAINT(通知客户区有变化)和WM_NCPAINT(通知非客户区有变化)--WM_NVPAINT系统会自己搞定--WM_PAINT消息对应的函数是OnPaint(),它是系统默认的接受WM_PAINT消息的函数,但我们一般在程序中做重绘时都在OnDraw函数中进行的,因为在ONPAIN函数中调用了ONDRAW函数。///CView默认的标准的重画函数void CView::On 阅读全文

posted @ 2012-06-26 17:52 SmarTom 阅读(196) 评论(0) 推荐(0)

摘要: 一.前言以前对位图自绘按钮很迷茫,一直想对位图自绘按钮有个了解,经过一段时间的搜集和开发,自己重写了一个按钮位图类COwnerdrawBitmapButton。COwnerdrawBitmapButton是一个从CWnd类派生来的MFC控件。此按钮包含了两部分:一个背景色和一个前景色。如果你的操作系统是WinXP和XP,这个可用。背景是从当前资源文件加载位图,否则函数DrawFrameControl用来绘制按钮的背景。前景是用户定义一个单色位图(字形)在按钮背景色上面透明的绘制。支持的功能:● 标准或XP主题● 12个预定义的背景样式● 用户定义的前景色(单色位图)● Buttons支持的状态 阅读全文

posted @ 2012-06-26 17:50 SmarTom 阅读(181) 评论(0) 推荐(0)

摘要: 使用MCI API,源文件中需要包含头文件 Mmsystem.h,在Project->Settings->Link->Object/libray module中加入库 Winmm.lib。1、MCI简介 MCI(Media Control Interface,媒体控制接口)向Windows程序提供了在高层次上控制媒体设备接口的能力。程序不必关心具体设备,就可以对激光唱机(CD)、视盘机、波形音频设备、视频播放设备和MIDI设备等媒体设备进行控制。 对于程序员来说,可以把MCI理解为设备面板上的一排按键,通过选择不同的按键(发送不同的MCI命令)可以让设备完成各种功能,而不必关 阅读全文

posted @ 2012-06-26 17:45 SmarTom 阅读(267) 评论(0) 推荐(0)

摘要: GetTextMetrics:获取当前字体的信息GetTextExtent:获取特定的字符串在屏幕上所占的宽度和高度对于这两个函数的作用,我在编程的时候,也有一定的困惑。因此,我也想,其他人在编程的时候也肯定有 同样的困惑。所以我把他们解释一下。不足之处,还请大家多多的添加 批评~~其实,我们对什么困惑呢?函数的调用方法,还是在返回值上?CDC::GetTextMetrics作用:返回当强设备描述表中的当前所用的字体的信息函数原型:BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics ) const;参数: lpMetrics (是一个指针)返回指向TEXTME 阅读全文

posted @ 2012-06-26 17:42 SmarTom 阅读(190) 评论(0) 推荐(0)