摘要: 用MFC做GDI开发的朋友肯定熟悉CBitmap类,该类封装了HBITMAP对象,简化了关于HBITMAP的API操作,如LoadBitmap方法可直接加载资源中指定ID的图片,但是很多情况下我们需要从文件中加载图片,CBitmap类就没有提供这样的方法了。 下面我总结几种我知道的从文件加载图片的方法: 1.使用API函数LoadImage,指定LR_LOADFROMFILE标志。如: HBI... 阅读全文
posted @ 2009-03-31 20:27 孤竹君 阅读(7595) 评论(0) 推荐(0) 编辑
摘要: 首先用SQL的字符串类型保存SQL语句,如下: DECLARE @strSQL nvarchar(500) SET @strSQL = 'CREATE VIEW MyView AS SELECT id, name FROM MyTable' 执行... 阅读全文
posted @ 2009-03-31 20:26 孤竹君 阅读(567) 评论(0) 推荐(0) 编辑
摘要: Internet Explorer的BHO的对象必须实现IObjectWithSite接口.该接口是IE用来对插件进行管理和通讯的一个接口,其有SetSite和GetSite两个方法,当IE加载和卸载Band对象的时候,调用该接口的SetSite方法,我们可以通过SetSite传进来的IUnknown指针来获取我们所需要的接口: 1. 获取IE的框架窗口句柄: HWND hWndP... 阅读全文
posted @ 2009-03-31 20:25 孤竹君 阅读(1675) 评论(0) 推荐(0) 编辑
摘要: IE主页的地址保存注册表中,注册表的具体位置在 HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\Main键下的的Start Page的值, 通过设置Start Page可以设置IE的主页. 阅读全文
posted @ 2009-03-31 20:23 孤竹君 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 众所周知,C++与其他语言(如C#,JAVA)一个很大的不同就是C++支持从多个类继承。 但是多继承经常遇到这样一种情况,如果有两个或多个基类有相同名字和标记的方法, 继承类该怎么去实现。如有2个基类,代码如下: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.co... 阅读全文
posted @ 2009-03-31 20:20 孤竹君 阅读(550) 评论(0) 推荐(0) 编辑
摘要: 相信即使再讨厌MFC的朋友也不会把厌恶牵扯到CString类上, 而且CString现在也提升为ATL和MFC的共享类。用CString类, 当然不能忘记它的Format方法,其用于格式化字符串。示例操作如下: CString strDemo; strDemo.Format( _T("数字为:%d, 字符串为:%s"), 1, strOther ); 很简单的使用.但我总觉得用的太多代码不美观(或许我有点洁癖吧),我总觉得一行代码的事用两行代码有点多余,于是我封装了StringFormatEx类.该类的封装风格借鉴了 ATL的字符串转换类的风格(如CA2TEX、CT2WEX等). 阅读全文
posted @ 2009-03-31 20:19 孤竹君 阅读(341) 评论(2) 推荐(0) 编辑
摘要: IE程序是属于Shell的一个应用程序,要枚举当前打开的所有IE程序窗口,可以通过ShellWindows集合来打开属于Shell的当前的窗口的集合 阅读全文
posted @ 2009-03-31 20:18 孤竹君 阅读(490) 评论(0) 推荐(1) 编辑
摘要: void EnumHTMLDocument( MSHTML::IHTMLDocument2* pDoc ) { if( pDoc == NULL )return; //遍历搜索子框架,递归处理子框架的文档 CComPtr spFramesCollection; pDoc->get_frames( &spFramesCollection ); lon... 阅读全文
posted @ 2009-03-31 20:17 孤竹君 阅读(2077) 评论(0) 推荐(0) 编辑
摘要: WIndows API函数CreateFile和CreateDirectory用于创建文件和目录,但设想这样一种情况:需要创建文件C:\test\test.txt,但是C:\test\目录不存在,简单地调用CreateFile不会成功了,创建目录也是一样。 我在Windows API找了很久,没找到能满足要求的函数,Shell API里也没有,于是只能靠自己实现了。 阅读全文
posted @ 2009-03-31 20:14 孤竹君 阅读(2577) 评论(0) 推荐(0) 编辑
摘要: ARP协议就是用来完成IP地址和MAC地址之间的转换工作,在ARP封包指定待获取MAC地址的局域网内的IP地址,然后发到局域网内,指定IP地址的机器接受到并返回一个ARP封包,并在返回的封包中指定自己的MAC地址。 这样就达到了获取MAC的目的。对于本机MAC地址同样可以这样获取。 阅读全文
posted @ 2009-03-31 20:12 孤竹君 阅读(2157) 评论(0) 推荐(0) 编辑
摘要: 监控文件(夹)是开发中比较常用的功能. Windows API函数FindFirstChangeNotification、FindCloseChangeNotification、 FindNextChangeNotification可以实现监控文件夹的改变, 但是不能具体指出改变的是哪个文件,自己写程序比较文件?有点舍本逐末了。个人觉得这些函数有些鸡肋。 还好ReadDirectoryChangesW能满足这种需求。 阅读全文
posted @ 2009-03-31 20:09 孤竹君 阅读(1349) 评论(0) 推荐(0) 编辑
摘要: 最近看深入解析ATL这本书的时候看到ATL中的窗口类实现的时候,很是惊异于ATL的Thunk的运用技术,,ATL运用Thunk技术把C++的成员函数置换成Windows窗口的消息处理函数。那么更古老的MFC框架又是怎么实现CWnd类到HWND窗口类之间的映射的呢? 下面的文章将ATL和MFC的窗口封装机制做个对比. 阅读全文
posted @ 2009-03-31 20:07 孤竹君 阅读(1136) 评论(0) 推荐(0) 编辑