WEB开发网
开发学院软件开发VC MFC程序员WTL指南(5)对话框与控件 阅读

MFC程序员WTL指南(5)对话框与控件

 2008-01-18 20:24:13 来源:WEB开发网   
核心提示:运行ControlMania1,用鼠标点击树控件上的+/-按钮,MFC程序员WTL指南(5)对话框与控件(9),你就会看到消息处理函数的作用-节点展开后就不能再折叠起来,容易出错和混淆的地方 对话框的字体如果你像我一样对界面非常讲究并且正在只用windows 2000或XP,WTL对新控件的封装和自画控件、自定外观控件

运行ControlMania1,用鼠标点击树控件上的+/-按钮,你就会看到消息处理函数的作用-节点展开后就不能再折叠起来。

容易出错和混淆的地方 对话框的字体

如果你像我一样对界面非常讲究并且正在只用windows 2000或XP,你就会奇怪为什么对话框使用MS Sans Serif字体而不是Tahoma字体,因为VC6太老了,它生成的资源文件在NT 4上工作的很好,但是对于新的版本就会有问题。你可以自己修改,需要手工编辑资源文件,据我所知VC 7不存在这个问题。

在资源文件中对话框的入口处需要修改3个地方:

  1. 对话框类型: 将DIALOG改为DIALOGEX
  2. 窗口类型: 添加DS_SHELLFONT
  3. 对话框字体: 将MS Sans Serif改为MS Shell Dlg

不幸的是前两个修改会在每次保存资源文件时丢失(被VC又改回原样),所以需要重复这些修改,下面是改动之前的代码:

IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 187, 102
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About"
FONT 8, "MS Sans Serif"
BEGIN
  ...
END

这是改动之后的代码:

IDD_ABOUTBOX DIALOGEX DISCARDABLE 0, 0, 187, 102
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About"
FONT 8, "MS Shell Dlg"
BEGIN
  ...
END

这样改了之后,对话框将在新的操作系统上使用Tahoma字体,而在老的操作系统上仍旧使用MS Sans Serif字体。

_ATL_MIN_CRT

本文的论坛 FAQ已经做过解释, ATL包含的优化设置让你创建一个不使用C运行库(CRT)的程序,使用这个优化需要在预处理设置中添加_ATL_MIN_CRT标号,向导生成的代码在Release配置中默认使用了这个优化。由于我写程序总是会用到CRT函数,所以我总是去掉这个标号,如果你在CString类或DDX中用到了浮点运算特性,你也要去掉这个标号。

继续

在第五章,我将介绍对话框数据验证(DDV),WTL对新控件的封装和自画控件、自定外观控件等一些高级界面特性。

修改记录

2003年4月27日,本文第一次发表。

上一页  4 5 6 7 8 9 

Tags:MFC 程序员 WTL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接