CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

如何操作控件的DDX方法

楼主No9(华龙)2000-05-28 17:58:00 在 VC/MFC / 基础类 提问

我最近写了一个程序,需要直接得到编辑框中的浮点数的数值,却发现原来的DDX方法不行,当用户输入未完成时,(比如要输入‘2.0’,已经输入‘2.’时,更新后自动变成了‘2’),于是我想要自行控制控件的DDX方法,我想派生一个新类,去重载DDX方法,不知道该如何处理,请指教? 问题点数:20、回复次数:7Top

1 楼No9(华龙)回复于 2000-06-07 16:13:00 得分 0

为什么我发表了多日,至今还是没人回应,我好伤心呀,好着急呀!  
  难道是太难吗?高手那么多,这么可能!  
  难道是分数太少吗?我现在加分求解!  
  还可能是......Top

2 楼No9(华龙)回复于 2000-06-07 16:22:00 得分 0

噢!我还不知道该如何加分呢?Top

3 楼No9(华龙)回复于 2000-06-17 16:05:00 得分 0

为什么还是没有人回答我呀,我好急呀......Top

4 楼jiangsheng(蒋晟.Net[MVP])回复于 2000-06-17 16:25:00 得分 20

//   必须已经设置好10位的长度限制和number风格  
  void extern   AFXAPI DDX_Text_DWORD(CDataExchange*   pDX,   UINT   nIDC,DWORD&   rDWord)  
  {  
  CString string,MaxString,ErrMsg;  
   
  pDX->m_pDlgWnd->GetDlgItem(nIDC)->GetWindowText(string);  
  while   (string.GetLength()   >   0)   {  
  if   (string.GetAt(0)   ==   '0')  
  string=string.Right(string.GetLength()   -   1);  
  else  
  break;  
  }  
  if   (string.GetLength()   >   10)   {  
  string.Format("错误:输入的数字太长!\n长度不能大于%d!",10);  
  AfxMessageBox(string);  
  pDX->Fail();  
  return; //   fail  
  }  
  if   (string.GetLength()   ==   10)   {  
  MaxString.Format("%u",ULONG_MAX);  
  if   (string   >   MaxString)   {  
  ErrMsg.Format("错误:输入的数字太大:%s!\n输入的数字不能大于%u!",string,ULONG_MAX);  
  AfxMessageBox(ErrMsg);  
  pDX->Fail();  
  return; //   fail  
  }  
  }  
   
  //   call   the   system's   DDX_Text  
  DDX_Text(pDX,nIDC,rDWord);  
  }  
   
  void AFXAPI DDX_DateTimeCtrl(CDataExchange*   pDX,   UINT   nIDC,COleDateTimeSpan& tmspn)  
  {  
  HWND   hWndCtrl   =   pDX->PrepareCtrl(nIDC);  
  CDateTimeCtrl*   pWnd   =   (CDateTimeCtrl*)   CWnd::FromHandle(hWndCtrl);  
  if(!pWnd)   return;  
  COleDateTime tmTemp,tmBase;  
   
  if(pDX->m_bSaveAndValidate){  
  pWnd->GetTime(tmTemp);  
  tmspn=tmTemp-tmBase;  
  }  
  else{  
  tmTemp=tmspn+tmBase;  
   
  if(::IsWindow(pWnd->m_hWnd))  
  pWnd->SetTime(tmTemp);  
  }  
  }  
  Top

5 楼No9(华龙)回复于 2000-06-19 16:35:00 得分 0

本人愚钝,直到目前还没有   jiangsheng   的意思,不知道是不是少了一部分文字/代码,再次烦请你解释一下,好吗?  
  谢谢!Top

6 楼jiangsheng(蒋晟.Net[MVP])回复于 2000-06-20 11:06:00 得分 0

See   TN026   in   MSDN.Top

7 楼No9(华龙)回复于 2000-06-28 11:17:00 得分 0

谢谢   jiangsheng   的指点,您的意思我明白了!  
  Top

相关问题

  • 有对form中所有控件进行操作的方法吗?
  • 请教vs2005自带WEB树控件2.0的js操作方法
  • formula One 控件的操作?
  • 怎么操作控件
  • MSFlexGrid控件操作难题
  • 控件的控制方法
  • ADODC控件的方法
  • 控件的使用方法
  • 动态创建控件后,怎么操作控件
  • 谁有操作农历的控件?

关键词

  • 数字
  • nidc
  • pdx
  • maxstring
  • ddx方法
  • getlength
  • 输入
  • errmsg
  • fail
  • format

得分解答快速导航

  • 帖主:No9
  • jiangsheng

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo