Sign in to follow this  
Followers 0
IanN1990

Detect Double Click on GUI button

2 posts in this topic

#1 ·  Posted (edited)

Hi, 

 

I am trying to detect a gui button double click without using TimerInit or a global mouse hook.

Below is some code i have tried but cant understand why it is not working.

 

; *** Start added by AutoIt3Wrpper ***
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
; *** End added by AutoIt3Wrapper ***
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Run_AU3Check=n
#AutoIt3Wrapper_Add_Constants=n

$hGUI = GUICreate("Test", 500, 500)
$Button = GUICtrlCreateButton("test", 10, 10, 400, 30)
GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND")
GUISetState()

While 1

    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd

Func MY_WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Local $nNotifyCode = BitShift($wParam, 16)
    Local $nID = BitAND($wParam, 0x0000FFFF)
    Local $hCtrl = $lParam
    If $nNotifyCode = $BN_DBLCLK And $nID = $Button Then
        ConsoleWrite("B")
       ; do stuff
        Return 0
    EndIf
    Return $GUI_RUNDEFMSG
EndFunc

Now i know the GUI register has worked, My_WM_Command is receiving messages, $nID is getting the correct handle but $nNotifyCode is always the same?

Edited by IanN1990

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Change this line:

$Button = GUICtrlCreateButton("test", 10, 10, 400, 30, BitOR($BS_NOTIFY, $GUI_SS_DEFAULT_BUTTON))

As stated by MSDN page on the page for notifications.

Quote

BN_DBLCLK notification code

Sent when the user double-clicks a button. This notification code is sent automatically for BS_USERBUTTON, BS_RADIOBUTTON, and BS_OWNERDRAW buttons. Other button types send BN_DBLCLK only if they have the BS_NOTIFY style.

 

Edited by BrewManNH

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0