プロパティ ペインの一部であり、数値 (正の整数) のみを許可する CEdit テキスト ボックスがあります。数値以外の値を入力するとボックスは正常に機能しますが、ボックス内の値を削除すると、「正の整数を入力してください」というダイアログが表示されます。
状況は次のとおり
です。 1. ボックスに数字 (たとえば 20) があります。
2.番号を削除します。
3. エラー ダイアログが表示されます。
このイベントを傍受してそこにデフォルト値を設定する方法を誰か教えてもらえますか?
私のプロパティペインは次のようになります。
const int DEFAULT_VALUE = 20;
class MyPropertyPane:public CPropertyPane
{
//....
private:
CEdit m_NumericBox;
int m_value;
//....
public:
afx_msg void OnEnChangeNumericBox();
//....
}
void MyPropertyPane::MyPropertyPane()
{
// Set a default value
m_value = DEFAULT_VALUE;
}
//....
void MyPropertyPane::DoDataExchange(CDataExchange* pDX)
{
DDX_Control(pDX, IDC_NUMERIC_BOX, m_NumericBox);
// this sets the displayed value to 20
DDX_Text(pDX, IDC_NUMERIC_BOX, m_value);
}
//....
void MyPropertyPane::OnEnChangeNumericBox()
{
// Somebody deleted the value in the box and I got an event
// saying that the value is changed.
// I try to get the value from the box by updating my data
UpdateData(TRUE);
// m_value is still 20 although the value is
// deleted inside the text box.
}