一個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空間http://user.qzone.qq.com/382164370/infocenter#!