背景:通过日历弹出框修改日期是,DTN_DATETIMECHANGE消息响应两次,需要只截获一次即可。
void CTestDlg::OnDatetimechangeDatetimepicker1(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMDATETIMECHANGE pDTChange = reinterpret_cast(pNMHDR);
*pResult = 0;
static bool bMoCalOk = true;
//判断是否有CMonthCalCtrl,若有会发送两次Change,截第二次即可
CMonthCalCtrl* pMoCalCtrl = m_CurTimeCtrl.GetMonthCalCtrl();
if (pMoCalCtrl != NULL)
{
bMoCalOk = !bMoCalOk;
}
if (!bMoCalOk)
{
return;
}
//执行自己的代码
}