DoubleLi

qq: 517712484 wx: ldbgliet

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

2013年11月6日

摘要: 包含透明色的位图的绘制方法有多种,最简单的方法是调用现成的函数:TransparentBlt,也可以通过自己的代码实现类似 TransparentBlt的功能,实现过程也有两种形式,一种是事先做一张掩码位图,另一种是动态生成掩码位图。本文将介绍动态生成掩码位图绘制具有 透明区域位图的方法。一、TransparentBlt 函数的使用TransparentBlt 函数在Windows98/Windows2000以上版本运行,系统中需要包含 Msimg32.dll,使用时可以链接 Msimg32.lib。Windows98下的TransparentBlt会产生资源泄漏,所以不建议在WIN98下使用 阅读全文
posted @ 2013-11-06 09:44 DoubleLi 阅读(454) 评论(0) 推荐(0)

摘要: 由于项目中要实现子窗口的透明的功能,在网上找到了这一段提示:子窗口的透明和主窗口完全不同, 主窗口是通过layeredwindow实现的, 而子窗口则必须自己实现, 尤其是半透明, 必须自己对获取的透明背景图进行操作。 要实现子窗口的透明需要做到下面几步:1. windows的ExStyle中需要包含WS_EX_TRANSPARENT属性2. windows的Style中要去掉WS_CLIPSIBLING属性3. 对继承自windows标准控件的子窗口( 比如edit, scrollbar等等 ), 需要截获WM_CTLCOLORxxx消息并返回一个style为BS_HOLLOW的brush的 阅读全文
posted @ 2013-11-06 09:42 DoubleLi 阅读(1107) 评论(0) 推荐(0)

2013年11月4日

摘要: 使用内存DC绘图,然后实现双缓冲,避免绘图闪烁,这个小技术简单但很有效。但是仍然有很多人说使用了双缓冲,图片却仍然有闪烁,分析了几个这样的例子,发现其实不是双缓冲的技术问题,而是使用者没有正确理解和使用双缓冲的方法。使用双缓冲要点如下:1. 保证绘图过程中的所有CDC及其继承类指向内存DC。在窗口或者视图中绘图,一般都是在OnDraw或者OnPaint事件中,但是有时根据需要绘图是通过调用其他类及函数完成比较复杂的绘制,在这些函数中,有时编写者会获取诸如CClientDC,然后绘图,此时的任何动作都会绕过缓冲区直接绘制到屏幕,从而造成闪烁。正确的做法是检查并修改所有绘图过程函数,避免直接获取C 阅读全文
posted @ 2013-11-04 12:48 DoubleLi 阅读(806) 评论(0) 推荐(0)

2013年10月31日

摘要: MFC库里没有符合这个条件的控件,于是我自己写了一个,初步测试有效。注:可以设置透明背景,但还不能做到透明度设置(如50%透明度) 如果设置了背景色,就不保留透明背景 默认背景色是透明的[cpp]view plaincopy//设置背景色(若clr为CLR_NONE,则背景透明)voidSetBackgroundColor(COLORREFclr){m_clrBackground=clr;}//设置文字前景色voidSetTextColor(COLORREFclr){m_clrText=clr;}//设置文字字体voidSetFont(CStringstrFaceName,LONG... 阅读全文
posted @ 2013-10-31 00:08 DoubleLi 阅读(10748) 评论(0) 推荐(0)

2013年10月30日

摘要: 非模态对话框需要重载OnCanel方法, 并调用DestroyWindow, 且不能调用基类的OnCanel重载PostNcDestroy, 需要delete掉this指针// Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CDlgTest) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support virtual void PostNcDestroy(); //}}AFX_VIRTUA 阅读全文
posted @ 2013-10-30 16:26 DoubleLi 阅读(496) 评论(0) 推荐(0)

摘要: (一)问题的提出:OpenCV有一个很简单的播放视频文件并加载滑动条的程序,但是如何用MFC对话框来创建一个有滑动条控制的播放器呢,网络上四处搜索都没有代码可以参考,下的都是些骗子链接文件,很过分,一点参考价值都没有,怎么办?(二)解决的思路:1.自己进行研究,不指望网络有现成的馅饼,因为那里多了去的陷阱,很可恶。2.要解决的关键问题是slider滑动条控件如何与视频播放实时结合在一起: ①主窗体的OnHScroll()响应函数负责响应slider滑动条的变化,这样就轻松搞定slider控件与拖动滑动条动作与视频播放的联动。 ②新建虚拟的slider实例和slider滑动位置的全局变量,通过数 阅读全文
posted @ 2013-10-30 10:21 DoubleLi 阅读(636) 评论(0) 推荐(0)

2013年10月25日

摘要: 在程序中发现一下代码:int CHmcVideoMgt ::OnGetDiskRunningInfo( SOCKETPARAM *pSocketInfo ,Json:: Value Param ){ int iArrayLen = Param[ _T("NUM" )].asInt(); ..... LPDiskRunningInfo pDiskRunningInfo = new DiskRunningInfo[iArrayLen ]; int nResult = HMCBLL_GetDiskR... 阅读全文
posted @ 2013-10-25 17:39 DoubleLi 阅读(2200) 评论(0) 推荐(0)

摘要: 第一种方式多进程模式下,在IE8打开web页面, 然后在调试菜单选择附加到进程, 这时看到2个IE进程, 选择没有带标题的, 也就是主进程, 就可以正常调试了.此方式比较麻烦, 不能F5直接启动IE调试.第二种方式设置IE8为单进程模式, 可以F5直接调试.首先,定位到注册表键:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main然后在该键值下添加一个键值如下:名称:TabProcGrowth类型:REG_DWORD值: 0 阅读全文
posted @ 2013-10-25 17:37 DoubleLi 阅读(612) 评论(0) 推荐(0)

摘要: IE8的一个重要特性就是每个Tab(选项卡)在独立的进程中运行,我们称之为LCIE(Loosely-Coupled IE)。 所以大家在升级到IE8之后会发现资源管理器里面有两个或者多个iexplore.exe进程。LCIE 的好处在:1)某个Tab 崩溃(crash)之后不会影响其他Tab 和IE主窗口2)Tab 进程在Vista 和Windows 7 下面以 Low Integrity Level 运行,这种进程基本上无法对系统进行任何读写操作,可以严格把病毒木马拒之门外。 这也就是大家所谓的"沙盘"技术。 插一句题外话:) 很多人认为"沙盘"技术是 阅读全文
posted @ 2013-10-25 17:35 DoubleLi 阅读(2313) 评论(0) 推荐(0)

2013年10月15日

摘要: 软件调试是我们软件开发过程中的重要一课。在前面,我们也讨论过程序调试,比如说这里。今天,我们还可以就软件调试多讲一些内容。比如说条件断点,数据断点,多线程断点等等。[cpp]view plaincopy #includeintvalue=0;voidtest(){inttotal;intindex;total=0;for(index=0;index【Advanced】; c)在【Expression】中输入DW(0x0043178),【ok】回车; d)F5继续运行程序,则程序会在value发生改变的时候停住。以局部数据total为例, a)按F10,运行程序,获取value的地址; b)Al 阅读全文
posted @ 2013-10-15 14:59 DoubleLi 阅读(778) 评论(0) 推荐(0)

上一页 1 ··· 394 395 396 397 398 399 400 401 402 ··· 474 下一页