系统平台是CE6.0,开发工具是VS2005。
碰到的问题是:当我的应用程序启动大概2分钟后,系统的时间会回到应用程序启动的那个时间。比如,12点钟启动程序,当12点02分的时候,系统时间又变成了12点。我检查了包含有 month calendar control 的那个设置时间的窗口,通过查看堆栈调用,发现每当出现这个问题的时候,该窗口都会处理一个“ON_NOTIFY”的消息,之后,该窗口会执行“MCN_SELCHANGE ”的响应事件。应用程序的部分代码如下:
void CSysDateTimeSetDlg::DoDataExchange( CDatExchange* pDX )
{
........
DDX_Control( pDX, IDC_MONTHCALENDAR1, m_Calendar )
DDX_Control( pDX, IDC_DATETIMEPICKER1, m_Calendar )
DDX_Control( pDX, IDC_DATETIMEPICKER2, m_Calendar )
........
}
BEGIN_MESSAGE_MAP(......)
......
ON_NOTIFY( MCN_SELCHANGE, IDC_MONTHCALENDAR1,&CSysDateTimeSetDlg::OnMcnSelchangeMonthcalendar1)
......
我的理解是,只有人为对该控件的操作,才会触发MCN_SELCHANGE消息,但是在这里,系统为什么每隔2分钟左右,就触发MCN_SELCHANGE呢?
还是说我的哪些操作会导致这种情况的发生?
------解决思路----------------------
LZ ,如你所说你是没有操作。但你的代码呢,或者其它因素呢?
只要触发了 MCN_SELCHANGE,无论是显式、还是隐式,触发了就是触发了。
其实,所谓的这个控件我没有用过,我只是按一般的问题分析来看待这个问题。请你去看看这个 MCN_SELCHANGE 事件的 MSDN 说明,不是只有你的操作才会引起 MCN_SELCHANGE 的。