工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛
您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > VC > 正文
MFC程序员的WTL指南之高级界面类
[文章信息]
作者:lithe
时间:2005-02-15
出处:blog
责任编辑:方舟
[文章导读]
本文将介绍一些新类实现高级界面特性新类:控件自画和自定外观控件
advertisement
热点推荐
· 禁止QQ登录的方法
· 给你的XML文件做个数字签名
· ImageReady制作“焰火”小动画
· Java加密和数字签名编程快速入门
· 在VB6中用命令行为模式控制GUI动作
[正文]

上一页  1 2 3 4 5  

  处理DDV验证失败

  如果控件的数据验证失败,CWinDataExchange会调用重载函数OnDataValidateError(),默认到处理是驱动PC喇叭发出声音,你可能想给出更友好的错误指示。OnDataValidateError()的函数原型是:

void OnDataValidateError ( UINT nCtrlID, BOOL bSave, _XData& data );

  _XData是一个WTL的内部数据结构,CWinDataExchange根据输入的数据和允许的数据范围填充这个数据结构。下面是这个数据结构的定义:

struct _XData
{
 _XDataType nDataType;
 union
 {
  _XTextData textData;
  _XIntData intData;
  _XFloatData floatData;
 };
};

  nDataType指示联合中的三个成员那个是有意义的,nDataType 的取值可以是:

enum _XDataType
{
 ddxDataNull = 0,
 ddxDataText = 1,
 ddxDataInt = 2,
 ddxDataFloat = 3,
 ddxDataDouble = 4
};

  在我们的例子中,nDataType的值是ddxDataInt,这表示_XData中的_XIntData成员是有效的,_XIntData是个简单的数据结构:

struct _XIntData
{
 long nVal;
 long nMin;
 long nMax;
};

  我们重载OnDataValidateError()函数,显示错误信息并告诉用户允许的数值范围:

void CMainDlg::OnDataValidateError ( UINT nCtrlID, BOOL bSave, _XData& data )
{
 CString sMsg;

 sMsg.Format ( _T("Enter a number between %d and %d"),data.intData.nMin, data.intData.nMax );

 MessageBox ( sMsg, _T("ControlMania2"), MB_ICONEXCLAMATION );

 ::SetFocus ( GetDlgItem(nCtrlID) );
}

  _XData中的另外两个结构_XTextData和_XFloatData的定义在atlddx.h中,感兴趣的话可以打开这个文件查看一下。

  改变对话框的大小

  WTL引起我的注意的第一件事是对可调整大小对话框的内建的支持。在这之前我曾写过一篇关于这个主题的文章,详情请参考这篇文章。简单的说就是将CDialogResize类添加到对话框的集成列表,在OnInitDialog()中调用DlgResize_Init(),然后将消息链入CDialogResize。

上一页  1 2 3 4 5  

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • Visual C++开发中常见问题的答案
  • MFC程序员的WTL指南之对话框与控件
  • 标准模板库(STL)学习指南之List容器
  • 用VC实现将自绘图形输出为bmp文件
  • DLL“地狱”的原因及其解决方案
  • 民营家电商排队造手机 设备商全面杀入
  • 英特尔澄清杨旭任职传闻 官方没宣布此消息
  • 国资委河北密制联通拆分方案
  • 垃圾邮件害人害企害国 清除垃圾邮件不手软
  • 中兴携手阿尔卡特 全球逐鹿CDMA
  • 用友总裁王文京:誓将ERP变成“大众消费”
  • 香港消费者委员会:数码相机最贵未必最好
  • 外电称中兴正评估西门子手机业务 或能并购
  • Advertisement