日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

Visual C++——无法响应WM_LBUTTONDBLCLK消息(鼠标左键双击)问题解决方案

發布時間:2024/10/5 c/c++ 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Visual C++——无法响应WM_LBUTTONDBLCLK消息(鼠标左键双击)问题解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題描述

在建立win32窗口項目的時候,發現窗口無法響應WM_LBUTTONDBLCLK(鼠標左鍵雙擊)消息。

MSDN

https://docs.microsoft.com/en-us/previous-versions/aa926302(v=msdn.10)?

問題分析

原因一:?

Only windows that have the CS_DBLCLKS style can receive WM_LBUTTONDBLCLK messages, which the OS generates when the user presses, releases, and again presses the left mouse button within the time limit for double-clicks for the system.?

翻譯:只有具有CS_DBLCLKS樣式的窗口才能接收WM_LBUTTONDBLCLK消息,該消息是OS在用戶按下,釋放并再次按下鼠標左鍵的時間內在系統雙擊時由OS生成的。

原因二

由于鼠標雙擊的WM_LBUTTONDBLCLK消息伴隨WM_LBUTTONDOWN消息的發生,導致鼠標雙擊事件,總是被之前的WM_LBUTTONDOWN消息截斷,WM_LBUTTONDBLCLK消息觸發不了。?

解決方案

對于原因一:?

修改對應的WNDCLASS的style成員加上CS_DBLCLKS風格即可。

?

wcex.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;

對于原因二

調整消息處理函數的消息處理順序。?

問題擴展

CS幾種風格記錄:

CS_HREDRAW:當窗體的寬度發生變化時,就重新繪制窗口。

CS_VREDRAW:當窗體的高度發生變化時,就重新繪制窗口。

CS_DBLCLKS:能接收用戶在窗體總的雙擊事件。

CS_OWNDC:為該類中的每一個窗口分配各自獨立的設備環境。

CS_NOCLOSE:禁用系統菜單中的“關閉”命令。

CS_CLASSDC:為該窗口類的各窗口分配一個共享的設備環境。

CS_PARENTDC:指定子窗口繼承其父窗口的設備環境。、

CS_SAVEBITS:把被窗口遮掩的屏幕圖像部分作為位圖保存起來。當該窗口被移動時,windows使用被保存的位圖來重建屏幕圖像。

雙擊鼠標左鍵實際上會生成以下四個消息系列:

  • WM_LBUTTONDOWN
  • WM_LBUTTONUP
  • WM_LBUTTONDBLCLK
  • WM_LBUTTONUP
  • 參考文章

    https://blog.csdn.net/u011296732/article/details/51669181

    https://blog.csdn.net/evanlinux/article/details/6598659

    總結

    以上是生活随笔為你收集整理的Visual C++——无法响应WM_LBUTTONDBLCLK消息(鼠标左键双击)问题解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。