我有一个正在处理的 Windows 应用程序,并且在调试时遇到了一个奇怪的问题。我正在使用 WTL,并在表单上有一个 CDateTimePickerCtl 来设置日期。我在消息映射中使用以下内容处理 DTN_DATETIMECHANGE 事件:
NOTIFY_HANDLER(CONTROL_ID_DATE, DTN_DATETIMECHANGE, OnDateChanged)
当应用程序在没有断点的调试器中运行时,这可以正常工作。如果我在 OnDateChanged 函数中有一个断点,即使在第一行,如果我通过下拉日历更改时间,VS 也会挂起。如果我通过在控件中输入来编辑日期,则没有问题。
我什至试图让 OnDateChanged 只调用 PostMessage,并使用特定于应用程序的消息来尝试解决该问题,但如果我在该消息处理程序中有断点,我会遇到同样奇怪的问题。
它变得更加陌生。不仅 VS 挂起,而且一旦 VS 挂起,其他一些应用程序也会挂起。IE 10、Chrome、Outlook 挂起,记事本没有。这是完全可重复的。
我最终不得不通过任务管理器多次杀死 VS。
您可以在此处查看我使用 MS Connect 打开的票证:
我的主要问题是其他人是否已经看到这个问题和/或他们是否可以重现它。我在这里有另一个开发人员在另一台机器上使用相同的代码进行了 repro,但还没有将代码的精简版本放在一起只是 repo。
另请注意,我在 Win7 64 位上运行 VS 2008。