关于获取checkbox选中状态的一个奇怪有关问题?没分的孩子好可怜

关于获取checkbox选中状态的一个奇怪问题?没分的孩子好可怜

void CControlPanelDlg::OnBnClickedMuteCheck()
{
// TODO: 在此添加控件通知处理程序代码
//AfxMessageBox(L"CHEK");
if (m_MuteCheckBox.GetState() == BST_CHECKED)
{
GetParent()->PostMessage(WM_MUTE);
}
else
{
GetParent()->PostMessage(WM_UNMUTE);
}

}

我在checkbox的click事件的处理函数中获得checkbox的状态。发现不管checkbox是否选中,每次获得值都是521。而在获取状态前加一条AfxMessageBox(L"CHEK")语句就能获得正确的状态值了。难道是因为click后,获取操作来的太快而状态还没来得及更新呢?
我该怎么样才能获得checkbox的正确值呢?难道非要加一条AfxMessageBox(L"CHEK")语句不可
checkbox checkbox单击事件

------解决方案--------------------
应当是check点击事件完成之后再去获取check状态,在check点击事件函数中去取值是不合适的,此时check的值正在改变
------解决方案--------------------
在取值之前 先更新对象内容
m_MuteCheckBox.UpdateData();
------解决方案--------------------
你在其他函数里面用GetState()获取就行了,check的click事件正在发生check状态改变。
2楼的方法我没试过,你可以试下
------解决方案--------------------
把check当button使关于获取checkbox选中状态的一个奇怪有关问题?没分的孩子好可怜