DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
上一页 1 ··· 392 393 394 395 396 397 398 399 400 ··· 474 下一页

2013年11月18日

摘要: 对开发中常见的内存泄露,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-11-18 21:00 DoubleLi 阅读(2204) 评论(0) 推荐(0)

摘要: 用.Net写的地图编辑器,最近在一个长时间使用的策划手里频繁挂掉。定位到原因应该是GDI泄露。但在几千行代码里手工寻找泄漏点实在是有些困难,直到在网上找到了这个检测GDI泄露的工具GDILeaks。它的强大之处,在于可以将程序里当前占用的gdi位图、dc用图形格式显示出来,这样,泄露点基本上就直接展示在你眼前了。另外,关于泄露为什么会发生,我还有些疑问。经检查,泄漏点是这样的C#代码void doSomeThing(){Bitmap tmpBmp = new Bitmap(100,100);returntransformBmp(tmpBmp); //这里对tmpBmp放大后存到一张新位图上返回 阅读全文
posted @ 2013-11-18 20:58 DoubleLi 阅读(861) 评论(0) 推荐(0)

摘要: 查GDI对象泄露的利器:GDIView可以很详细的查到进程的GDI对象的总个数,详细的GDI对象的个数,以及其增减数量。其GDI对象类型也可以很详细的得知,以及其内存地址,句柄。实在是好使!下载地址:http://www.nirsoft.net/utils/gdi_handles.html中文版32x下载地址:http://www.hanzify.org/software/12680.html 阅读全文
posted @ 2013-11-18 20:44 DoubleLi 阅读(1064) 评论(0) 推荐(0)

摘要: 清除屏幕闪烁(转自网上)由于作图过于复杂和频繁,所以时常出现闪烁的情况,一些防止闪烁的方法,如下:(1)将Invalidate()替换为InvalidateRect()。Invalidate()会导致整个窗口的图象重画,需要的时间比较长,而InvalidateRect()仅仅重画Rect区域内的内容,所以所需时间会少一些。不要为一小块区域的重画就调用Invalidate(),不愿意自己去计算需要重画的Rect,事实上,如果你确实需要改善闪烁的情况,计算一个Rect所用的时间比起重画那些不需要重画的内容所需要的时间要少得多。(2)禁止系统擦除你的窗口。系统在需要重画窗口的时候会帮你用指定的背景色 阅读全文
posted @ 2013-11-18 17:21 DoubleLi 阅读(6214) 评论(0) 推荐(1)

摘要: 窗口是屏幕上的一个矩形区域。窗口分为3种:重叠窗口、弹出窗口和子窗口。每个窗口都有由系统绘制的“非客户区”和应用程序绘制的“客户区”。在MFC中,CWnd类为各种窗口提供了基类。1通过HWND获得CWnd指针通过HWND获得Cwnd指针可以调用Cwnd::FromHandle函数。12345678voidCDemoDlg::OnButton1() {HWNDhWnd = GetSafeHwnd(); //获得当前窗口的句柄CWnd* pWnd = CWnd::FromHandle(hWnd); //通过HWND获得CWnd指针CString strText = _T("") 阅读全文
posted @ 2013-11-18 12:49 DoubleLi 阅读(517) 评论(0) 推荐(0)

2013年11月16日

摘要: 英文单词解释clip:夹子、子弹夹、回形针;夹住,修剪sibling:同胞兄弟或姐妹overlapped:重叠这两个Window Stype的特性与异同素来不太清楚,今日作一笔记:MSDN的解释为:WS_CLIPCHILDRENExcludes the area occupied by child windows when you draw within the parent window. Used when you create the parent window.WS_CLIPSIBLINGSClips child windows relative to each other; that 阅读全文
posted @ 2013-11-16 16:15 DoubleLi 阅读(519) 评论(0) 推荐(0)

摘要: 一个View中用到了一个CListCtrl,在OnInitialUpdate函数里面他调用了m_listCtrl.ModifyStyleEx(0, LVS_EX_FULLROWSELECT);但是结果是并没有改变View中这个ListCtrl的效果。 仔细的查阅了MSDN的关于ModifyStyleEx的说明,发现没什么可以的地方,调试几遍发现也没异常,最后在网上一搜索ModifyStyleEx,结果发现碰到这个问题的朋友还真不少,有一遍关于ModifyStyle和ModifyStyleEx无法改变样式的解决方法的文章被转载得到处都是,不仅感慨现在的互联网信息重复程度~~结果看完文章很失望,他 阅读全文
posted @ 2013-11-16 15:55 DoubleLi 阅读(3338) 评论(0) 推荐(0)

摘要: 动态子类化CComboBox以得到子控件EDIT及LISTBOXJoise.LI写于2004-4-6ComboBox是比较常用的一个控件,有三种样式:CBS_SIMPLE(简单),CBS_DROPDOWN(下拉),CBS_DROPDOWNLIST(下拉列表),其中下拉列表样式是不允许输入的,简单样式是永远都显示下拉框的。ComboBox是由一个ListBox和一个Edit框组合而成。本文将以限制只能输入电话号码为例介绍子类化过程得到Edit框(类似的可以得到ListBox)。电话号码只能有数字和“-”和“+”组成,经查ASCII表,知道对应的ASCII值为48-57及45和43共12个值。好, 阅读全文
posted @ 2013-11-16 15:39 DoubleLi 阅读(795) 评论(0) 推荐(0)

2013年11月15日

摘要: 通过映射OnCtlColor消息,而后在该函数中使用pDC->SetBkMode(TRANSPARENT)使Static控件背景透明时会出现:文本覆盖重影的问题,当改变控件的文本就会发生新文本与旧文本重叠的现象。 可以通过以下方式使Static控件文本在透明状态下改变时不会产生文本重叠问题: 1、由于Static控件的背景已经是透明的了,那么旧文本应该是画在Static控件的父窗口上的。 2、在给Static控件设置新文本之后(不是之前!)刷新父窗口即可。例如: GetDlgItem(IDC_STATIC_TEST)->SetWindowText(_T("北京2008&q 阅读全文
posted @ 2013-11-15 20:22 DoubleLi 阅读(4166) 评论(0) 推荐(0)

摘要: 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。 一、创建动态控件: 为了对照,我们先来看一下静态控件的创建。 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示。 静态控件不需要调用Create()函数来创建。 而创建动态控件有很大不同,以下以按钮为例,看一下动态控件的创建过程: 1.建立控件ID号: ID号是控件的标识,创建控件前必须先为它设置一个ID号。 打开资源中的“St... 阅读全文
posted @ 2013-11-15 19:58 DoubleLi 阅读(1202) 评论(0) 推荐(0)

上一页 1 ··· 392 393 394 395 396 397 398 399 400 ··· 474 下一页