Value型(int型)のEDITBOXからUpdatedataで数字を取込んでいます。
EDITBOXが空白の場合に発生する「Please input an integer」の
警告メッセージが連続して表示される回数の制限、もしくは、
警告メッセージが全く表示されないようにする事は出来ないでしょうか?
現在は、一定時間毎にUpdatedataを行っており、EDITBOXが空白のままだと、
警告メッセージダイアログが10個以上表示されてから、EDITBOXに以前入力していた1桁目の数字が自動的に書き込まれて警告メッセージの追加表示が
終わります。このVC++が自動的に行っている警告メッセージの出現回数の
制限の変更をしたいのですが、出来ないでしょうか?
よろしくお願い致します。
> 警告メッセージが全く表示されないようにする事は出来ないでしょうか?
Updatedata() を関連の機構に「エラーメッセージを表示しない」とかのオプションは無い様だから自力で何とかする。
UpdateData() を使う方向で対応したいのならDDXルーチンを自作すれば良いかと
void dialog::DoDataExchange(CDataExchange* pDX) {
CDialog::DoDataExchange(pDX);
// DDX_Text(pDX, IDC_EDIT1, edit1_);
myDDX_TextInt(pDX, IDC_EDIT1, edit1_); // ↑を自作DDXルーチン←に置き換え
}
void PASCAL myDDX_TextInt(CDataExchange* pDX, int nIDC, int& value) {
if (pDX->m_bSaveAndValidate) { // UpdateData(TRUE)
BOOL result;
const int v = int(pDX->m_pDlgWnd->GetDlgItemInt(nIDC, &result, TRUE));
if (result) {
value = v;
}
else {
// 取得に失敗したが、今回はエラーメッセージ出したりとかしないでスルー
// pDX->Fail();
}
}
else { // UpdateData(FALSE)
pDX->m_pDlgWnd->SetDlgItemInt(nIDC, value, TRUE);
}
}
ツイート | ![]() |