MFC、CDataExchange:覆盖警告用户输入错误的消息框

MFC , CDataExchange: override the message box alerting the user to the input error

我需要验证对话框中某些 ctrl 的输入。 我正在使用 DDV_.. 函数来处理验证,

但是,CDataExchange 提示用户输入错误的消息框并不是我需要的(它使用 "integer" 这个词,但我的用户不熟悉这个词)。

我仍然希望 DDV.. 能够处理输入验证,但我想创建自定义警报消息。我该怎么做?

如果要更改文本,则需要编写自己的 DDX- 验证例程。

DDX-Stuff 非常简单。 查看 MFC 源代码。 DDX_Text 只是调用了一个名为 _Afx_DDX_TextWithFormat 的静态 MFC 函数。此函数仅调用 sscanf,如果失败则显示错误提示。

重要的是先调用pDX->PrepareEditCtrl。检查这是否是失败或验证调用 (pDX->m_bSaveAndValidate)。并在失败时调用 pDX->Fail。

只需复制代码并编写您自己的私有DDX例程。

可以在此处的 MFC 安装中找到源代码:"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\src\mfc\dlgdata.cpp"