存档

文章标签 ‘WTL’
1,627 views

MFC 程序员的 WTL 教程 ( 7 ) — 分割条窗口

2010年1月4日

链接:上一部分下一部分

第七部分 – 分割条窗口

内容

  • 简介
  • WTL 分割条窗口
    • 创建一个分割条
    • 基本方法
    • 数据成员
  • 开始示例工程
  • 在窗格中创建窗口
    • WS_EX_CLIENTEDGE 的影响
  • 消息路由
  • 窗格容器
    • 基本方法
    • 在分割条窗口中使用窗格容器
    • 关闭按钮以及消息处理
  • 高级分割条特性
    • 嵌套分割条
    • 在窗格中使用 ActiveX 控件
    • 特殊绘制
  • 窗格容器中的特殊绘制
  • 奖励:状态栏中的进度条
  • 下一步
  • 参考资料
  • 修订历史

简介

自从 Windows 95 的资源管理器以其文件系统的双窗格视图粉墨登场以来,分割条窗口就成了一个流行的 UI 元素。MFC 中有一个复杂而强大的分割条窗口类,但是学会如何使用它却有点困难,而且它关联于文档/视图框架。在本部分里,我将探讨 WTL 的分隔条窗口,与 MFC 的分割条窗口相比没那么复杂。尽管 WTL 分隔条的实现没有 MFC 的特性丰富,但它却极其易于使用和扩展。

本章的示例工程是对 ClipSpy 的重新实现,当然,是使用了 WTL 而不是 MFC。如果你对该程序不熟悉,现在可以先浏览一下相关的文章,因为在这儿我会复制 ClipSpy 中的功能,但不会提供其工作原理的深入解释。本文主要聚焦于分割条窗口而不是剪贴板。

阅读全文…

MFC 程序员的 WTL 教程, WTL , , , ,

1,438 views

MFC 程序员的 WTL 教程 ( 6 ) — 宿纳 ActiveX 控件

2010年1月4日

链接:上一部分下一部分

第六部分 – 宿纳 ActiveX 控件

内容

  • 简介
  • 以 AppWizard 开始
    • 创建工程
    • 生成的代码
  • 使用资源编辑器添加控件
  • 用于宿纳控件的 ATL 类
    • CAxDialogImpl
    • AtlAxWin 和 CAxWindow
  • 调用控件的方法
  • 接收控件激发的事件
    • 在 VC 6 里添加处理器
    • 在 VC 7 里添加处理器
    • 事件的知会
      • VC 6 里的知会
      • VC 7 里的知会
  • 示例工程概述
  • 运行时创建 ActiveX 控件
  • 键盘处理
  • 下一步
  • 修订历史

简介

在这第六部分里,我将介绍 ATL 对在对话框中宿纳(hosting)ActiveX 控件的支持。由于 ActiveX 控件是 ATL 的专项,所以这儿并没有相关的 WTL 类。不过,因为 ATL 宿纳控件的方式与 MFC 迥异,所以这是我们要介绍的一个重要主题。我会介绍如何宿纳控件以及接收(sink)事件,并开发一个相比用 MFC 的 ClassWizard 写就的应用毫无功能损失的应用程序。当然,你可以在你写的 WTL 应用中使用 ATL 对控件宿纳的支持。

阅读全文…

Internet Explorer Programming, MFC 程序员的 WTL 教程, WTL , , ,

1,669 views

MFC 程序员的 WTL 教程 ( 5 ) — 高级对话框 UI 类

2010年1月4日

链接:上一部分下一部分

第五部分 – 高级对话框 UI 类

内容

  • 第五部分简介
  • 属主绘制(Owner Draw)以及定制绘制(Custom Draw)的专用类
    • COwnerDraw
    • CCustomDraw
  • 新的 WTL 控件
    • CBitmapButton
    • CCheckListViewCtrl
    • CTreeViewCtrlEx 和 CTreeItem
    • CHyperLink
  • 对话框控件的 UI 更新
  • DDV
    • 处理 DDV 失败
  • 改变对话框的大小
  • 下一步
  • 参考资料
  • 修订历史

第五部分简介

在上一部分里,我们了解了一些关于对话框和控件的 WTL 特性,其工作方式与 MFC 中的对应类很相似。在本部分里,我们会介绍几个新的 WTL 类,它们实现了一些更加高级的 UI 特性:属主绘制(Owner draw)和定制绘制(Custom draw),新的 WTL 控件,UI 更新,以及对话框数据验证(DDV)。

阅读全文…

MFC 程序员的 WTL 教程, WTL , , , , ,

2,086 views

MFC 程序员的 WTL 教程 ( 4 ) — 对话框和控件

2010年1月4日

链接:上一部分下一部分

第四部分 – 对话框和控件

内容

  • 简介
  • 重温 ATL 对话框
  • 通用控件封装类
  • 使用 AppWizard 创建基于对话框的应用
  • 使用控件封装类
    • ATL 方法 1 – 附着到 CWindow
    • ATL 方法 2 – CContainedWindow
    • ATL 方法 3 – 子类化
    • WTL 方法 1 – DDX_CONTROL
    • WTL 方法 2 – DDX_CONTROL_HANDLE
  • 更多 DDX 的内容
    • DDX 宏
    • 关于 DoDataExchange() 的更多信息
    • 使用 DDX
  • 处理来自控件的通知
    • 在父窗口中处理通知
    • 反射通知
      • 用于处理反射消息的 WTL 宏
  • 拾零
    • 对话框字体
    • _ATL_MIN_CRT
  • 修订历史

第四部分简介

对话框和控件是 MFC 确确实实节省你时间和精力的一个地方。如果没有 MFC 的控件类,你就会被淹没在填充结构以及写下成吨的 SendMessage 调用以管理控件的琐事中。而且 MFC 还提供了对话框数据交换(DDX),可以在控件和变量之间传递数据。WTL 也支持所有这些特性,并且在其通用控件的封装类里还加入了一些改进。在本文中,我们致力于一个基于对话框的应用,它演示了你所使用过的 MFC 特性,以及一些 WTL 在消息处理上的增强。高级 UI 特性以及 WTL 中的新控件将在第五部分里介绍。

阅读全文…

MFC 程序员的 WTL 教程, WTL , , ,

1,691 views

MFC 程序员的 WTL 教程 ( 3 ) — 工具栏和状态栏

2010年1月4日

链接:上一部分下一部分

第三部分 – 工具栏和状态栏

内容

  • 第三部分介绍
  • 框架中的工具栏和状态栏
  • AppWizard 为工具栏和状态栏生成的代码
    • CMainFrame 如何创建栏
    • 显示或者隐藏栏
    • 栏的内建特性
    • 使用不同的风格创建工具栏
  • 工具栏编辑器
  • 工具栏按钮的 UI 更新
    • 启用工具栏 UI 更新
  • 用复用栏代替平实的工具栏
  • 多窗格状态栏
    • 窗格的 UI 更新
  • 下一步:关于对话框的一切
  • 参考资料
  • 修订历史

第三部分介绍

从在 Windows 95 中被作为通用控件开始,使用工具栏和状态栏已经成为了平常事。MFC 对多浮动工具栏的支持也对他们的流行起了推波助澜的作用。在后来的通用控件升级中,复用栏(Rebar,或者最初被称为的酷栏,coolbar)又为如何呈现工具栏增添了新的途径。在这一部分里,我会涵盖以下知识,WTL 如何对这些种类的栏进行支持以及如何在自己的应用中使用它们。

阅读全文…

MFC 程序员的 WTL 教程, WTL , ,

1,302 views

MFC 程序员的 WTL 教程 ( 2 ) — WTL 中的 GUI 基础类

2010年1月4日

链接:上一部分下一部分

第二部分 – WTL 中的 GUI 基础类

内容

  • 第二部分介绍
  • WTL 综述
  • 开始一个 WTL EXE
  • WTL 消息映射的增强
  • 使用 WTL AppWizard 可以得到什么
    • 通历向导(VC 6)
    • 通历向导(VC 7)
    • 检查生成的代码
  • CMessageLoop 内幕
  • CFrameWindowImpl 内幕
  • 回到时钟程序
  • UI 更新
    • 控制时钟的新菜单项
    • 调用 UIEnable()
  • 关于消息映射的最后注意事项
  • 下一站,1995
  • 修订历史

第二部分介绍

好,是实实在在地讲述 WTL 的时候了!在这部分里,我会介绍写一个主框架窗口的基础知识,以及 WTL 引入的比较受欢迎的改进,比如 UI 更新和更好的消息影射。为了最大程度地掌握本部分的内容,你应该安装 WTL 以使其头文件处于 VC 的搜索路径中,而且 AppWizard 也在适当的目录下。WTL 的分发包中附有如何安装 AppWizard 的说明,请参考该文档。

阅读全文…

MFC 程序员的 WTL 教程, WTL , ,

1,828 views

MFC 程序员的 WTL 教程 ( 1 ) — ATL 中的 GUI 类

2010年1月4日
链接:下一部分

第一部分 – ATL 中的 GUI 类

本章内容

  • README.TXT
  • 本系列介绍
  • 第一部分介绍
  • ATL 背景知识
    • ATL 和 WTL 的历史
    • ATL 风格的模板
  • ATL 窗口类
  • 定义窗口实现
    • 填充消息映射
  • 高级消息映射链和嵌入(Mix-in)类
  • ATL EXE 的结构
    • VC 6 的情形
    • VC 7 的情形
  • ATL 中的对话框
  • 就要到 WTL 了,我保证!
  • 修订历史

README.TXT

在继续或者在本文的讨论板块中发布帖子之前,我希望你能先阅读以下内容。

本系列原来是为 VC 6 用户写的,介绍 WTL 7.0 的内容。现在 VC 8 已经出来了,我觉得也到了更新本系列来介绍 VC 7.1 的时候了。;)(不过,VC 7.1 的从 6 到 7 的自动转换工作并不是总能平滑地完成,所以 VC 7.1 的用户在试着使用示例源代码的时候可能会遭遇失败)因而,我将继续下去,持续更新本系列。文章将更新到可以反映 WTL 7.1 的特性,并会在下载的源代码中包括 VC 7.1 的工程。

针对 VC 2005 用户的重要提示:VC 2005 的 Express 版本并附带 ATL 或者 MFC,因此不能使用此版本编译 ATL 或者 WTL 工程。

阅读全文…

MFC 程序员的 WTL 教程, WTL , , ,

1,530 views

用于 VS 2008 的 WTL splitter App 的 wizard 安装包

2009年12月21日

用于 VS 2008 的 WTL splitter App 的 wizard 安装包, 性质等同于 wtl 附带的 wizard, 下载地址:

用法很简单, 将下载下来的文件解压缩到一个文件夹, 然后双击运行 setup90-clswiz.js 和 setup90-SplitWiz.js 这两个脚本文件即可完成安装.

打开 vs 2008 即可全自动的新创建 wtl splitter 窗口风格的应用程序了.
阅读全文…

WTL, 技术心得 , ,

2,736 views

支持 VS 2008 的 WTL Helper

2009年5月5日

等了两年, 那个白俄还是没有更新 wtl helper, 实在难以忍受了, 将人家的东东改了改, 重新发布在我的自留地里.

下载地址,

可执行安装包: WTLHelper
源代码压缩包: wtlhelper9-src

以后谁有工夫将其放到 sourceforge 上, 就造福各使用者了.

如果你不知道这个东东是干嘛的, 请看 这里 . 这里是其 官方主页, 如果你想支持他对这个组件的开发, 可以给他捐款.

PS: Sourceforge 上的项目已经建立起来了, 网址是: http://sourceforge.net/projects/wtlhelper9 欢迎访问.

延伸阅读:
Tutorial : Creating Visual Studio Add-Ins
How to write a VS2010 Extension using Statement Lambdas
Simpler Code Add-In for Visual Studio 2008
Line Counter – Writing a Visual Studio 2005 & 2008 Add-In

WTL, 技术心得 ,

826 views

实现一个将 IP 地址控件的 disabled 状态

2008年3月8日

要实现一个将 IP 地址控件的 disabled 状态, 但是 Windows 的实现就没有将控件的颜色灰掉,
M$ 真是的, 最后一步懒得弄了, 我只好自己弄咯. 下面是我的WTL,实现代码. BTW, 这个控件在
动态改变大小时, 里面的四个 EDIT 的大小没跟着改变, 我也懒得弄了 ;-)
阅读全文…

WTL, 技术心得 , ,