怎么避免UpdateData()函数弹出对话框

一个Edit控件在关联一个int 变量什么的时候,用UpdateData()函数跟新数据时,如果Edit上什么都它会弹出对话框来。。
 

                                                                      图片

 

看起来挺丑的,怎么避免呢?一个就是用Get(Set)WindowText()函数更新数据,有的有这样的方法:

if(!UpDateData)
{
     return ; //something
}

好像不很好,有时不方便,其实把它的变量改成CString 类型的也挺不错的,这样就不会乱弹了。。。

例如有:
Edit控件Number属性为TRUE,只能输入数字。。
1、h文件有
CString m_szDefaultZoomFactor;
int m_nDefaultZoomFactor;

2、CPP文件

在DoDataExchange时加点代码
void CPageMeasument::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT2, m_szDefaultZoomFactor);
//.....other code..........

m_szDefaultZoomFactor.Trim();
m_nDefaultZoomFactor = static_cast<int>(_tstoi((const wchar_t *)m_szDefaultZoomFactor.GetBuffer(0)));
      //......other code......

}

在需要更新数据的地方。。。。。
void CPageMeasument::OnOK()
{

UpdateData(TRUE);
       //......other code ......
if ((m_nDefaultZoomFactor <= 10) || (m_nDefaultZoomFactor > 2000 ) &&  (BST_CHECKED==((CButton*)GetDlgItem(IDC_CHECK5))->GetCheck()) )
{
CRect rect;
GetDlgItem(IDC_EDIT2)->GetWindowRect(&rect);
CPoint pt = rect.CenterPoint(); pt.x = rect.right-15;
m_tooltip.SetDirection(PPTOOLTIP_LEFTEDGE_TOP);
if (0 == m_nDefaultZoomFactor)              //这里就知道控件上是空的。。。
{
m_tooltip.ShowHelpTooltip(&pt, _T("<center><h2>Check input</h2><br><hr color=blue></center><br>Enter a value"));

}else{
m_tooltip.ShowHelpTooltip(&pt, _T("<center><h2>Check input</h2><br><hr color=blue></center><br>Enter default zoom(10-2000)"));
}
return ;
}

CPropertyPage::OnOK();
}

 

                          图片

   


如图所示,控件为空时有检查,但不是弹出丑陋的AfxMessageBox对话框。。。。

我的QQ空间

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值