我有一个自定义控件,它本质上是一个绘图画布,并且有一个使用它来编辑文件的程序。 然而,当打开一个新文件时,会发生非常奇怪的事情。
如果用户在打开文件对话框(标准的TOpenDialog
控件)中双击文件,而不是选择一个项目并按ENTER
键,则位于其下方的画布将注册单击事件,最终在加载完成后立即执行绘制操作。
显然,这不是这样做的预期行为。 我之前注意到,当您双击鼠标时,双击消息会在第二次单击消息之前到达。 我认为对话框框可能会因为双击而关闭,然后第二个单击消息到达并被发送到现在适当坐标处的任何内容。
有没有办法让这种情况停止发生? 我无法告诉我的代码“在加载后,只需吃掉下一个单击”,因为它可能是通过“ENTER”键打开的,那么它将错过第一个合法单击。 有人能想出更好的处理方法吗? (使用Windows 7,如果有区别的话。)