94.Win32编程
李先静
Only those who attempt the absurd can achieve the impossible.
展开
-
在VC中链接动态链接库(DLL)的方法
转载时请注明出处和作者联系方式作者联系方式:李先静 方法一:windows提供了一套函数,用于加载动态链接库中的符号(函数和变量),调用这些函数去加载:1. HINSTANCE LoadLibrary( LPCTSTR lpLibFileName);2. FARPROC GetProcAddress( HMODULE hModule, LPCWSTR lpProcName);3.原创 2005-08-29 20:23:00 · 4750 阅读 · 3 评论 -
在CPP中调用Jscript中的函数
在CPP中调用Jscript中的函数 在C++中调用Jscript的函数非常简单,Windows提供了一个msscript.ocx的控件,利用这个控件可以直接操作Jscript: 执行一段Jscript脚本,或者调用指定的函数。我写了一个简单的例子: l 导入msscript.ocx。下面这条指令会在项目目录中生成msscript.tli和msscript.tlh两原创 2006-06-10 18:43:00 · 4463 阅读 · 4 评论 -
SAFEARRAY使用方法示例
SAFEARRAY使用方法示例 SAFEARRAY不是很好用,一些函数不太直观,一不小心就着了它的道。上次学习编写Google桌面插件时就遇到了麻烦,本来应该是vsa.vt = VT_ARRAY | VT_BSTR,结果写成了vsa.vt = VT_ARRAY,让我查了好久才找到原因。这里整理一下,作为备忘。 l 创建原创 2006-06-10 18:41:00 · 6141 阅读 · 0 评论 -
WTL 学习笔记 -- mru
WTL 学习笔记 -- mru Mru的功能就是在菜单中显示最近使用过的文档,这个功能很常用,很方便,可以为用户节省不少时间。不过已经想不起来mru确切的意思了,ru应该代表是最近使用的意思吧,至于m的意思,一时想不起来,呵,暂且不管它吧。 实际上,以前在用MFC时,从来没有用过它,原因是从来没有用MFC写过大程序,大多数情况下都是dialog形式的。不过界于这个功能很常用,学习W原创 2006-04-19 21:33:00 · 3624 阅读 · 2 评论 -
GoogleDesktop插件开发 – 建立开发环境
GoogleDesktop插件开发 – 建立开发环境 Google推荐的开发环境是VS 2003,GoogleDesktop的插件是基于COM的,而COM是语言无关的,所以你可以用任何能开发COM的工具(语言)开发。 如果你使用的VS 2003或者VS 2005,建立开发环境非常容易。不过,如果你像我一样恋旧,还是喜爱VC6的简洁快速,排斥庞大缓慢的VS 2003或者VS 2005原创 2006-04-23 19:47:00 · 3297 阅读 · 0 评论 -
GoogleDesktop插件开发 – 序
GoogleDesktop插件开发 – 序 GoogleDesktop 推出已经很久了,只到最近我才开始关注它。 前段时间,花了两周时间学习WTL和ATL,由于自己对COM、Win32 SDK编程和C++ 模板技术都比较熟悉,学习WTL和ATL自然不是什么难事,不过光学不练,印象不会太深。为了避免学会了,很快又忘光了,决定写一个练习程序。 最初打算写一个图片浏览器。IPic原创 2006-04-23 19:01:00 · 3445 阅读 · 0 评论 -
WTL 学习笔记 -- 几则技巧
WTL 学习笔记 -- 几则技巧 l 在WTL项目中插入ATL控件。有点不明白,WTL本身就是扩展ATL,但WTL向导产生的工程,竟不能使用ATL控件。还得手工加一些东西来欺骗VS6,VS6才让插入ATL控件。1. 在工程增加一个Atl.idl文件,并排除在编译之外。原创 2006-04-13 21:39:00 · 3557 阅读 · 0 评论 -
WTL 学习笔记 -- CSplitterWindow
WTL 学习笔记 -- CSplitterWindow SplitterWindow在Win32下已经用得很普遍了,但是并没有这样一个基本控件,用SDK开发应用程序,如果有需要,就得自己写这样一个控件。MFC里提供了这样一个控件,但只能在SDI/MDI里使用,而不能在对话框里使用。 实现这样一个控件倒不难,记得N年前,曾经在PB6里写过这样一个东东。自己实现毕竟比较麻烦,如果有现成原创 2006-04-12 20:20:00 · 4007 阅读 · 0 评论 -
WTL 学习笔记 -- ActiveX
WTL 学习笔记 -- ActiveX 在Win32下,ActiveX控件已经是个耳熟的概念了,即使对COM不太了解,使用ActiveX控件仍然是件容易的事件。即然是控件,无非要关注两个方面,第一是如何调用它的函数,其次是如何接收它的事件。 我们看看在WTL中如何使用ActiveX控件(基本对话框):1. 创建项目时,让对话框支持ActiveX。从代码中,可以发原创 2006-04-12 21:52:00 · 4051 阅读 · 0 评论 -
WTL 学习笔记 -- 消息流
WTL 学习笔记 -- 消息流 正如刚从DOS转到Win32下写程序时,总是为找不到main函数而感到不爽,学习时WTL时,第一反应是找GetMessage和DispatchMessage,想知道消息是如何分发到窗口的。 在_tWinMain里做了一些初始化函数之后,就进入了Run函数,显然Run函数就是消息循环。下面是Run函数的代码:原创 2006-04-11 20:45:00 · 3747 阅读 · 2 评论 -
WTL 学习笔记 -- Property Sheets and Wizards
WTL 学习笔记 -- Property Sheets and Wizards 属性页和向导也是很常用的组件,两者表现形式大不相同,但功能差不多,无非前者所有界面同时出现,而后者要按规定的次序出现罢。MFC中提供属性页组件,实在太难用,现在还记忆犹新。 WTL中的属性页是否有所改进呢?答案是当然的,对于简单情况,几行代码就搞定了,对于复杂情况,使用也很直观,总之你无需要花太多精力在原创 2006-04-13 21:08:00 · 2704 阅读 · 0 评论 -
WTL 学习笔记 -- DDX 和 DDV
WTL 学习笔记 -- DDX 和 DDV DDX 初看时有点神秘,它把控件和相关变量关联起来了,两者在适当的时候自动进行同步。比如你在初始化时给变量赋了初值,控件上自动显示该值; 而在界面上修改了控件上的值后,它自动反应到对应的变量上去。 我们先看看如何使用DDX:1. 包含相关头文件原创 2006-04-12 21:50:00 · 5733 阅读 · 0 评论 -
WTL 学习笔记 -- ResizeDialog
WTL 学习笔记 -- ResizeDialog 记得以前写过一个ActiveX控件,只要把它放在对话框上,它遍历对话框上的所有控件,并把它们管理起来,只要对话框大小变化时,它自动调整各个控件的大小和位置。这可能是我写的第一个ActiveX控件,比较失败,虽然功能实现了,但只是无条件的缩放控件的大小和位置,结果是有的控件变得很难看。 WTL里已经内置这种功能,不用我们自己实现了。它原创 2006-04-11 21:20:00 · 3931 阅读 · 0 评论 -
VC6下开发WTL的办法
VC6下开发WTL的办法 以前研究过microwindow的实现,这段时间又在研究GTK+。突发奇想,打算再研究一下WTL,对比一下这些GUI的实现,看能不能从对比中学到点什么。所以这几天开始折腾WTL,由于我的机器太旧,跑VS 2005有点慢,更何况已经习惯了VC6,一心想在VC6上使用WTL,无奈找不到WTL的老版本,让人郁闷。今天无意间发现一篇文章,介绍在VC6里使用新版本WTL。转转载 2006-04-04 20:54:00 · 5466 阅读 · 0 评论 -
VC技巧一则--设置得到初始焦点的按钮
在对话框上有多个按钮,希望第一次进入对话框时,第一个按钮得到焦点,可总是“确定”按钮得到焦点的。 把第一个按钮删除,然后重新放上去,以保证它最后一个创建,没有任何效果。 在OnInitDialog里把得到第一个按钮,然后调用SetFocus,还是没有效果。 打开资源(.rc)文件,发现得到焦点的按钮总是在最前面,难道原创 2005-10-15 19:43:00 · 6159 阅读 · 1 评论 -
实现COM消息广播
实现COM消息广播 大家都知道,为ActiveX控件添加事件处理函数是件容易的事情,IDE已经提供相应的Wizard,为ActiveX控件添加事件处理函数和为一般控件添加事件处理函数没有什么两样。而为普通COM组件添加事件处理函数,就没有这么直观了,必须手工编写相关代码。 如果完全手工去编写这些代码,可以说是相当的麻烦,实际上相当编写另外一个COM组件给原组件调用,至少要实现IDi原创 2006-06-08 21:13:00 · 3631 阅读 · 0 评论