Sunwayking

导航

2009年6月7日 #

CreateCompatibleDC用法[转]

摘要: CreateCompatibleDC Creates a memory device context that is compatible with the device specified by pDC. 假如需要对屏幕进行比较多的gdi函数操作,如果每一步操作都直接对屏幕dc进行操作,那出现的大多数可能性都是屏幕的闪烁。一个很好的解决方法就是使用内存dc,将这些操作全部先在内存dc上操作,然... 阅读全文

posted @ 2009-06-07 10:35 Sunwayking 阅读(981) 评论(0) 推荐(0) 编辑

MFC GDI双缓冲避免图形闪烁[转]

摘要: 如何实现双缓冲首先给出实现的程序,然后再解释,同样是在OnDraw(CDC *pDC)中: CDC MemDC; //首先定义一个显示设备对象CBitmap MemBitmap;//定义一个位图对象 //随后建立与屏幕显示兼容的内存显示设备MemDC.CreateCompatibleDC(NULL);//这时还不能绘图,因为没有地方画 ^_^//下面建立一个与屏幕显示兼容的位图,至于位图的大小... 阅读全文

posted @ 2009-06-07 10:30 Sunwayking 阅读(595) 评论(0) 推荐(0) 编辑

Windows的位图alpha混合技术

摘要: 摘 要:本文介绍了在Windows环境下对位图的图像alpha混合技术,提供了alpha混合函数的实现方法,并对Windows API提供的alpha混合函数的使用进行了介绍。关键词:Windows API,alpha混合,位图。1 引言在游戏、图像处理等程序中,经常会看到图像的淡入、淡出、两个或多个图像重叠显示、三维物体的光影效果等,这些特殊效果使用到的技术就是图像的混合技术,也叫图像的alph... 阅读全文

posted @ 2009-06-07 10:13 Sunwayking 阅读(851) 评论(0) 推荐(0) 编辑

简单介绍内存泄漏(三)

摘要: 使用BoundsChecker检测内存泄漏: BoundsChecker采用一种被称为Code Injection的技术,来截获对分配内存和释放内存的函数的调用。简单地说,当你的程序开始运行时,BoundsChecker的DLL被自动载入进程的地址空间(这可以通过system-level的Hook实现),然后它会修改进程中对内存分配和释放的函数调用,让这些调用首先转入它的代码,然后再执行原来的代码... 阅读全文

posted @ 2009-06-07 08:19 Sunwayking 阅读(275) 评论(0) 推荐(0) 编辑

简单介绍内存泄漏(二)

摘要: 检测内存泄漏: 检测内存泄漏的关键是要能截获住对分配内存和释放内存的函数的调用。截获住这两个函数,我们就能跟踪每一块内存的生命周期,比如,每当成功的分配一块内存后,就把它的指针加入一个全局的list中;每当释放一块内存,再把它的指针从list中删除。这样,当程序结束的时候,list中剩余的指针就是指向那些没有被释放的内存。这里只是简单的描述了检测内存泄漏的基本原理,详细的算法可以参见Steve M... 阅读全文

posted @ 2009-06-07 08:18 Sunwayking 阅读(253) 评论(0) 推荐(0) 编辑

简单介绍内存泄漏(一)

摘要: 对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比较成熟... 阅读全文

posted @ 2009-06-07 08:18 Sunwayking 阅读(228) 评论(0) 推荐(1) 编辑

消息钩子函数入门篇[转]

摘要: Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,... 阅读全文

posted @ 2009-06-07 08:06 Sunwayking 阅读(204) 评论(0) 推荐(0) 编辑

MFC中定时器的使用[转]

摘要: 在程序中我们经常要使用定时刷新的功能,典型的应用是在信息管理系统中表单要跟着数据库中的数据变动。MFC提供了定时器来完成这个功能。 在MFC中和定时器相关的有三个函数:UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)( HWND, UINT, UINT, DWORD) );afx_msg vo... 阅读全文

posted @ 2009-06-07 07:45 Sunwayking 阅读(541) 评论(0) 推荐(0) 编辑