我有一个Windows应用程序,我正在处理,并且在调试时遇到了一个奇怪的问题。我正在使用WTL,并且在表单上有一个CDateTimePickerCtl来设置日期。我使用消息映射中的以下内容处理DTN_DATETIMECHANGE事件:
NOTIFY_HANDLER(CONTROL_ID_DATE, DTN_DATETIMECHANGE, OnDateChanged)当应用程序在没有断点的调试器中运行时,这很好。如果OnDateChanged函数中有一个断点,即使在第一行,如果通过下拉日历更改时间,VS也会挂起。如果通过在控件中键入日期来编辑日期,则没有问题。
我甚至试图让OnDateChanged只调用PostMessage,并使用特定于应用程序的消息试图绕过这个问题,但是如果在消息处理程序中有一个断点,我也会遇到相同的奇怪问题。
变得更奇怪了。不仅VS挂起,而且一旦VS挂起,其他一些应用程序也会挂起。IE 10,Chrome,Outlook挂,记事本不。这是完全可重复的。
最后,我不得不通过任务管理器多次杀死VS。
您可以在这里看到我与Connect女士一起打开的机票:
我的主要问题是,其他人是否见过这个问题和/或他们是否能复制它。我这里有另一个开发人员在另一台机器上复制了相同的代码,但是还没有把简化的代码放在一起进行回购。
还请注意,我在Win7 64位上运行VS 2008。
发布于 2013-09-06 22:00:09
在早期版本的Windows中,我对组合框也有同样的问题。特别是当断点在关闭时间设置并由另一个控件激活启动时。看起来很有可能在日期时间也存在问题。对于这种情况,我建议使用TRACE/ATLTRACE调用进行调试。
发布于 2015-10-01 07:28:12
这个问题已经很老了,但也许这个答案可以帮助一些人发现这个问题:
微软的连接网站(https://connect.microsoft.com/VisualStudio/feedback/details/490277/,link不再起作用)上有一个问题,描述了C#/.NET环境中的这种行为。
微软团队发现这是由Win32 DateTimePicker控件本身造成的,该控件安装了一个全局鼠标钩子,导致了所描述的行为。自从错误(?)已经在Win32中了,对于.NET/C++应用程序也是一样的。
我不认为窃听器会被修复。连接网站链接被关闭。
当前的解决方法是在DateTimePicker事件处理程序中没有断点。
https://stackoverflow.com/questions/18621575
复制相似问题