如何使OnMButtonDblClk在Windows ce 6.0中工作?

时间:2011-05-16 12:34:45

标签: windows-ce

我在我的视图类中添加了以下coe,但它仍无效。

BOOL CtestView::PreCreateWindow(CREATESTRUCT& cs)
{
  if (CView::PreCreateWindow(cs))
  {
     WNDCLASS wc;
     // Get the class information for the default MFC view class.
     ::GetClassInfo(AfxGetInstanceHandle(),cs.lpszClass,&wc);

     // Register a new class using the attributes of the default
     // view class, and make it the new default class.
     cs.lpszClass = AfxRegisterWndClass(wc.style | CS_DBLCLKS,
        wc.hCursor,wc.hbrBackground,wc.hIcon);
     return TRUE;
  }
  return FALSE;
}

1 个答案:

答案 0 :(得分:1)

您的窗口是否设置为接收双击事件?见MSDN article。引用:

  

应用程序定义的窗口   默认情况下,不会双击   消息。因为系统   生成涉及的开销   双击消息,这些消息   仅为Windows生成   属于拥有的类   CS_DBLCLKS类样式。您的   应用程序必须在何时设置此样式   注册窗口类。

您还可以通过管理上/下事件,这些事件的光标位置之间的增量以及它们之间的时间来创建您自己的双击。

例如,这个序列:

  • 关闭消息(保存控制)
  • 启动计时器
  • 通过不到250毫秒
  • up message(在同一控件上)
  • 小于250毫秒
  • 关闭消息(在同一控件上)
  • 小于250毫秒
  • up message(在同一控件上)

=双击

如果在该序列中超时到期或控件发生更改,则重置计数器和变量,因为操作不是双击。