【发布时间】:2014-01-31 15:01:17
【问题描述】:
我正在使用 MFC ComboBox 控件来更改某些参数,这些参数在可用的 IP 范围内具有选区(例如,只有/没有广播 IP)。
我需要调用两次范围修改函数来强制刷新显示的值:为什么?
行为:
One call to range modification
Two calls to range modification
源代码:
void CIPAddressBugDlg::OnChangeCombo()
{
UpdateData(TRUE);
ChangeIPRange();
//ChangeIPRange();
}
void CIPAddressBugDlg::ChangeIPRange()
{
BYTE nField0, nField1, nField2, nField3;
if ( Combo.GetCurSel() )
{
IpAddress.GetAddress(nField0, nField1, nField2, nField3);
if ( nField0 < (BYTE) 224 )
nField0 = 224;
IpAddress.SetAddress(nField0, nField1, nField2, nField3);
IpAddress.SetFieldRange(0, 224 , 232 );
}
else
{
IpAddress.GetAddress(nField0, nField1, nField2, nField3);
if ( nField0 >= (BYTE) 224 )
nField0 = 223;
IpAddress.SetAddress(nField0, nField1, nField2, nField3);
IpAddress.SetFieldRange(0, 0 , 223 );
}
}
Combo 是一个 ComboBox 控件,而 IpAddress 是一个 CIPAddressCtrl。我正在运行 Windows XP 的 VS C++ 6.0(是的,我知道 -_- )上编译。
(如果需要我也可以上传整个玩具项目)
【问题讨论】: