1.窗口类样式:
CS_DBLCLKS
CS_DBLCLKS标志使窗口可以检测到双击事件。窗口响应双击的细节如下:
- 如果窗口没有CS_DBLCLKS标志,系统向窗口依次发送如下消息:
WM_LBUTTONDOWN
- WM_LBUTTONUP
- WM_LBUTTONDOWN
- WM_LBUTTONUP.
其实相当于两个单击。
- 如果窗口有CS_DBLCLKS标志,则系统向窗口依次发送如下消息:
WM_LBUTTONDOWN
- WM_LBUTTONUP
- WM_LBUTTONDBLCLK
- WM_LBUTTONUP.
第一种情况中的第二个WM_LBUTTONDOWN被WM_LBUTTONDBLCLK代替了。
注意,在上述序列中间可能会插入其他的一条或一些消息,所以这两个消息序列不一定是完全连续的。
其实,在没有指定CS_DBLCLKS标志时,程序本身也可以检测到双击事件的。参见MSDN里Dr.GUT的"Simulating Mouse Button Clicks"文章,不过要有一些技巧.一般的情况下,如果没有指定CS_DBLCLKS,在窗口的消息循环里将不会得到WM_LBUTTONDBLCLK消息。
所有的标准窗口控件,对话框,桌面窗口类都默认拥有CS_DBLCLKS标志。第三方控件最好也加上此风格,以使其在对话框编辑器里可以正常工作。