2012-06-05 41 views

回答

0

您無需控制值就可以使用您的代碼來限制它。 如果使用嚮導子類化(添加變量)編輯控件,則可以更容易,您可以選擇UINT類型並在此處設置最小值和最大值。 也不要忘記將樣式設置爲ES_NUMBER(在編輯控件屬性中將Number設置爲True)。

+0

我已經有一個變量(在DoDataExchange()中分配)保存EditBox中的值。這是UINT類型。對Spincontrol來說,是Editcontrol(我正在研究)。我已經使用CSpinButtonCtrl :: SetRange(1,99)但只適用於SpinCOntrol,我如何管理EditControl? – user1438138

0

如果你絕對需要的是,你必須從CEdit派生類,並相應地處理輸入。渲染說「不可接受的字符」的氣球可能有點棘手,給在線錯誤。只有當你打算在多個地方使用這種類(編輯控制)時,該類纔會有用,最好是具有不同的範圍。

+0

它的唯一範圍是1到99之間。是否有任何其他替代方法限制在編輯框中輸入值0? – user1438138

+0

您可以使用編輯控件附加旋轉按鈕控件(CSpinButtonCtrl)。和/或你可以處理EN_CHANGE通知。但是如果使用輸入「20」,然後通過刪除「2」然後輸入「3」來嘗試使其成爲「30」? – Ajay

0

這是完全不同的問題,從你的原始文章中的一個。

確保您的旋轉控制遵循Z順序(標籤順序)立即編輯控件。 在資源集微調器樣式爲:UDS_AUTOBUDDY UDS_SETBUDDYINT,UDS_ALIGNRIGHT ,. 這將使微調控制器:選擇編輯控件作爲好友,在編輯框中設置整數,將其自身置於編輯控件的右邊。

要做到這一點,在微調設置的屬性:「自動好友」真「設置好友整數」真與「Alingment」以右對齊。

你n要必須設置最低和最高的編輯控件,在EN_CHANGE通知命令處理程序現在處理它。

將此代碼放在處理程序中。

void CYourDlg::OnEnChangeEditNum() 
{ 
    int iValue = GetDlgItemInt(IDC_EDIT1); 
    if(iValue < 1 || iValue > 99) 
    { 
     m_Edit.ShowBalloonTip(_T("Number Out of Range"), _T("Value must fall between 1 and 99."), TTI_INFO_LARGE); 
    } 

}