DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::
上一页 1 ··· 420 421 422 423 424 425 426 427 428 ··· 474 下一页

2013年3月26日

摘要: 1.要加一个头文件: #include <objsafe.h>2.在控件头文件中加入:1 DECLARE_INTERFACE_MAP()2 BEGIN_INTERFACE_PART(ObjectSafety, IObjectSafety)3 STDMETHOD(GetInterfaceSafetyOptions)(REFIID riid, DWORD __RPC_FAR *pdwSupportedOptions, DWORD __RPC_FAR *pdwEnabledOptions);4 STDMETHOD(SetInterfaceSafetyOptio... 阅读全文
posted @ 2013-03-26 09:09 DoubleLi 阅读(635) 评论(0) 推荐(0)

2013年3月25日

摘要: 科普一下,自己也学习一下~~~~~ 一直对字符的各种编码方式懵懵懂懂,什么ANSI、UNICODE、UTF-8、GB2312、GBK、DBCS、UCS……是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们。Let's go! 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。 再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为"计算机"。 开始计算 阅读全文
posted @ 2013-03-25 16:03 DoubleLi 阅读(381) 评论(0) 推荐(0)

摘要: 原文地址:http://blog.csdn.net/collin1211/article/details/2483316VC 项目中可以使用的路径宏:宏说明$(RemoteMachine)设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。$(References)以分号分隔的引用列表被添加到项目中。$(ConfigurationName)当前项目配置的名称(例如“Debug”)。$(PlatformName)当前项目平台的名称(例如“Win32”)。$(Inherit)指定在由项目生成系统所撰写的命令行中,继承的属性出现的顺序。默认情况 阅读全文
posted @ 2013-03-25 15:44 DoubleLi 阅读(424) 评论(0) 推荐(0)

2013年3月22日

摘要: 1、画笔有两种形式创建画笔一是直接通过GetStockObject()函数来调用二是通过创建画笔来调用HPEN CreatePen( intfnPenStyle,// pen style intnWidth,// pen width COLORREFcrColor // pen color);创建画笔后必须调用SelectObject函数来将起选入设备环境;删除画笔可通过DeleteObject 函数来实现;2、画刷创建画刷一是通过GetStockObject函数来调用二是通过调用CreateSolidBrush 和CreateHatchBrush来创建画刷HBRUSH CreateSolid 阅读全文
posted @ 2013-03-22 19:56 DoubleLi 阅读(648) 评论(0) 推荐(0)

摘要: HBITMAP CopyDCToBitmap(HDC hScrDC, LPRECT lpRect){if(hScrDC==NULL || lpRect==NULL || IsRectEmpty(lpRect)){ AfxMessageBox("参数错误");return NULL;}HDC hMemDC;// 屏幕和内存设备描述表HBITMAP hBitmap,hOldBitmap;// 位图句柄int nX, nY, nX2, nY2;// 选定区域坐标int nWidth, nHeight;// 位图宽度和高度// 确保选定区域不为空矩形if (IsRectEmpty( 阅读全文
posted @ 2013-03-22 19:50 DoubleLi 阅读(957) 评论(0) 推荐(0)

摘要: 在windows系列上做编程,gdi是一个很重要的技术点,有很多程序在运行多次后出现异常,除了众所周知的内存泄露以外,gdi资源泄露也是一个很直接的原因.今天就把我自己在编程中总结的一些经验给大家分享,欢迎高手补充.1.Create出来的gdi对象,一定要用DeleteObject来释放,释放顺序是先Create的后释放,后Create的先释放.这里的Create指的是以它为开头的gdi函数,比如,CreateDIBitmap,CreateFont等等,最后都要调用DeleteObject来释放.2.Create出来的dc要用DeleteDC来释放,Get到的要用ReleaseDC释放.3.确 阅读全文
posted @ 2013-03-22 16:39 DoubleLi 阅读(538) 评论(0) 推荐(0)

摘要: 前一段在一个仿QQ的IM通讯工具中加入屏幕截图以及截图编辑功能,但是测试中发现当连续进行几十次截图后,系统会出现白屏,开始以为和win7经常闪白有关,屏幕截图截取到闪白的瞬间导致白屏,后来发现是GDI内存不足,申请不到GDI内存贴图失败所致。于是找了GDI泄露的工具,对程序进行GDI内存检测,下面就介绍两款GDI泄露检测工具的用法以及GDI编程的一些注意事项。第一款:GDIndicator 支持win7+xp 下载地址1、启动待检测的程序和GDIndicator,启动顺序没有要求,之后F5刷新,就能看到系统中所有进程,和使用的资源数找到想要查看的进程,这里我们的程序是 TPCommonCont 阅读全文
posted @ 2013-03-22 16:26 DoubleLi 阅读(710) 评论(0) 推荐(0)

摘要: 介绍CPen* SelectObject( CPen* pPen );CBrush* SelectObject( CBrush* pBrush );virtual CFont* SelectObject( CFont* pFont );CBitmap* SelectObject( CBitmap* pBitmap );int SelectObject( CRgn* pRgn );CGdiObject* SelectObject( CGdiObject* pObject );函数功能:该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。函数原型:HGDIOBJ Selec 阅读全文
posted @ 2013-03-22 15:00 DoubleLi 阅读(4562) 评论(0) 推荐(0)

摘要: 所谓窗口子类化:改变一个已经存在的窗口实例的性质:消息处理与其他实例属性。通常在SDK中所谓的窗口子类化就是改变一个窗口函数(如GetWindowLong()和SetWindowLong())通过这两个函数来设置窗口的属性等;而今天我们主要内容是介绍MFC中的子类化,它跟SDK中的子类化不太一样:所有MFC窗口有相同的窗口函数,由该窗口函数根据窗口句柄查找窗口实例,在把消息映射到该窗口类(class)得消息处理函数上。为了利用MFC的消息映射机制,不宜改变窗口函数(名),MFC也把子类化封装在函数SubclassWindow()中。#include "Subclass.h" 阅读全文
posted @ 2013-03-22 12:45 DoubleLi 阅读(931) 评论(0) 推荐(0)

摘要: 对开发中常见的内存泄露,GDI泄露进行检测一、GDI泄露检测方法:在软件测试阶段,可以通过procexp.exe 工具,或是通过任务管理器中选择GDI对象来查看软件GDI的对象是使用情况。注意点:Create出来的GDI对象,都要用DeleteObject来释放;Create出来的DC,都要用DeleteDC来释放,GetDC得出的DC,要用ReleaseDC来释放。以下是一些常用到的函数:1、 检查GetWindowDC(), 后面是否有ReleaseDC();2、 检测GetDC();后面是否有ReleaseDC();3、 检测画刷CBrush:CreateSolidBrush()-》 D 阅读全文
posted @ 2013-03-22 10:45 DoubleLi 阅读(886) 评论(0) 推荐(0)

上一页 1 ··· 420 421 422 423 424 425 426 427 428 ··· 474 下一页