摘要: WTL中有两个Mix-in类: CDoubleBufferImpl和CDoubleBufferWindowImpl,用于创建双缓冲绘图窗口,用法非常简单。下面创建了一个普通的WTL窗口类,在窗口的客户区中有大量的绘图工作,使用CDoubleBufferImpl类来消除绘图时的闪烁现象:const C... 阅读全文
posted @ 2015-11-06 10:14 爱好奇 阅读(374) 评论(0) 推荐(0) 编辑
摘要: Graphicsg(pDc->m_hDC);g.SetSmoothingMode(SmoothingModeHighQuality);Color*attibute_color=(Color*)m_attributes[1]->pData;Colorcolor(attibute_color->GetA... 阅读全文
posted @ 2015-11-04 16:31 爱好奇 阅读(1750) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/iyangyuan/p/3316444.html,感谢杨元。Tomcat发布项目的方式大致有三种,但小菜认为通过在tomcat的conf/Catalina/localhost目录下添加配置文件,来发布项目,是最佳选择。 因为这样对tomcat的入侵... 阅读全文
posted @ 2015-10-10 11:26 爱好奇 阅读(713) 评论(0) 推荐(0) 编辑
摘要: 获取系统字体常用方法如下:LOGFONT lf = { 0 };::GetObject(::GetStockObject(DEFAULT_GUI_FONT), sizeof(LOGFONT), &lf);但这种方法在xp、win7、win8下获取的都是宋体,我们期望的结果是在win7\8下返回微软雅黑,正确获取系统字体的方法下:// WTL 获取标准字体方法:CLogFont logFont;logFont.SetMessageBoxFont();// API 获取标准字体方法:NONCLIENTMETRICS info;info.cbSize = sizeof(NONCLIENTME 阅读全文
posted @ 2013-10-10 14:53 爱好奇 阅读(2051) 评论(0) 推荐(0) 编辑
摘要: 在VC中实现一个占据整个Windows桌面(包括任务栏等)的全屏对话框的其实并不难。两行代码搞定:GetWindowLong(hWnd, GWL_STYLE) & ~WS_MAXIMIZEBOX); // 去掉WS_MAXIMIZEBOX风格ShowWindow(hWnd, SW_MAXIMIZE); // 最大化显式窗口如果再加上TOPMOST属性,一般的全屏要求也就如此了吧。再接着说,如何防止无标题的窗口最大化时遮住任务栏,可在WM_GETMINMAXINFO消息中进行处理:// 防止窗口最大化时会遮住任务栏MINMAXINFO *pmmi = (MINMAXINFO*)lPara 阅读全文
posted @ 2013-08-12 20:27 爱好奇 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 在采用ATL、WTL的开发对话框程序的标准方法是从CDialogImpl上继承,然后在类中定义一个IDD,把这个窗口与资源关联起来。如果不定这个IDD是编译不通过的,代码如下: class CAboutDlg : public CDialogImpl{public: enum { IDD = IDD_ABOUTBOX }; BEGIN_MSG_MAP(CAboutDlg) ... 阅读全文
posted @ 2013-08-10 18:04 爱好奇 阅读(1125) 评论(0) 推荐(0) 编辑
摘要: 目前在开发一个小的界面程序,需要用到消息hook于是写了一个CGlobalWindowMsgHook类,使用起来非常方便,现拿出来与大家分享。头文件: 1: #pragma once 2: 3: #include "EventDelegate.h" 4: 5: ///////////////////////////////////////////////////////////////////////////////////////// 6: // CGlobalWindowMsgHook 全局 Windows 消息 Hook 7: // 8: 9: ... 阅读全文
posted @ 2013-08-05 20:27 爱好奇 阅读(6836) 评论(1) 推荐(0) 编辑
摘要: 熟悉.NET的人都知道, .NET使用委托可以快速实现观察者模式,免去写很多繁杂重复的代码。遗憾的是,C++并没有提供这样的模型,为了达到相似的目的,需要继承一个类并重写virtual方法,这种做法需要写很多代码,效率比较低下。然而,在强大的C++面前,没有什么是不可能的,已经有很多人针对这个问题进行过研究,并且实现了各种委托模型,其中最著名的就是FastDelegate。为了让使用FastDelegate更象.NET,我新添加几个模板,主要如下:首先添加一个两个类用于模拟事件发生源及事件参数类: 1: // 定义事件发送源(类似于.net的sender) 2: class IEven... 阅读全文
posted @ 2013-08-05 20:13 爱好奇 阅读(1312) 评论(2) 推荐(1) 编辑
摘要: 现在国内越来越重视技术研发,所以很多企业都开始有了自己技术研发团队或技术中心,但技术研究有个问题,就是短期无法变现,并且随着市场的变化现研技术的有效性会削弱,这就需要公司领导有独到的眼光来选择合适的技术研究方向,提高公司未来对的竞争力,避免落后。但大部份公司都把技术研究做为公司的附属工作,成为大家没事做时的临时工作调剂品,而不是做为提高企业及产品竞争力的科技手段,长期规划得不到支持。科技是第一生产力,但需要长期的投入,可现状是,在短期利益面前,科技永远都是排在最后的,公司生存都存在问题,哪有人员去投入技术研发呢。所以国内的技术研究工作还有很长的路要走。 阅读全文
posted @ 2013-07-08 16:22 爱好奇 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 微软推出的Ribbon UI界面在应用程序开发上完全颠覆了以往的菜单+工具条的应用模式,非常有新颖性。Ribbon UI有一个弹出窗口功能让人感觉很疑惑,窗口截图如下:通过spy4win工具抓取窗口信息发现这几个窗口都具有WS_POPUP属性,也就是说它是一个弹出窗口。支持鼠标、键盘按键,也有弹出窗口的特性“点窗口里面不会关闭,点外就会关闭”,让人疑惑的是这个弹出窗口还不会抢窗口焦点。理论上一个具有WS_POPUP属性的窗口一定要激活才能支持按键及点窗口外关闭这两个功能的,于是花了点时间研究了一下MFC 自带的Ribbon界面,分析了一下这个弹出窗口的实现原理,疑惑解决了。主要解决方法如下:第 阅读全文
posted @ 2013-06-15 17:38 爱好奇 阅读(901) 评论(0) 推荐(0) 编辑