void InsertInfoDialog::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Text(pDX, IDC_ID, m_nID); DDX_Text(pDX, IDC_Name, m_strName); DDX_Text(pDX, IDC_Price, m_dPrice); DDX_Text(pDX, IDC_Count, m_nCount); } 为什么当我在运行的时候输入结束会出现弹窗,“请输入一个数字。”。该怎么解决 其中m_nID,m_strName,是CString类型,m_dPrice是double类型,m_nCount是int类型 对于这两个 DDX_Text(pDX, IDC_Price, m_dPrice); DDX_Text(pDX, IDC_Count, m_nCount); 该怎么进行修改
时间: 2023-06-15 19:02:55 浏览: 104
对话框VC源代码:ddx_ipaddress
弹窗提示“请输入一个数字。”的原因是因为程序在将用户输入的数据转换为相应的数据类型时发生了错误。对于m_dPrice和m_nCount这两个变量,应该在输入时进行类型检查,确保用户输入的是数字类型的数据。
可以使用DDV_Double和DDV_Int宏来进行类型检查。例如,将DDX_Text(pDX, IDC_Price, m_dPrice)修改为如下代码:
```
DDX_Text(pDX, IDC_Price, m_dPrice);
DDV_MinMaxDouble(pDX, m_dPrice, 0.0, 10000.0); //限制用户输入的价格在0到10000之间
```
将DDX_Text(pDX, IDC_Count, m_nCount)修改为如下代码:
```
DDX_Text(pDX, IDC_Count, m_nCount);
DDV_MinMaxInt(pDX, m_nCount, 0, 1000); //限制用户输入的数量在0到1000之间
```
这样就可以在用户输入非数字类型的数据时,及时弹出提示框进行提醒,保证程序的健壮性。
阅读全文