Jump to content
Sign in to follow this  
matwachich

SS_NOTIFY and mouse event on Control

Recommended Posts

Hi all!

Simple question:

Why is the mouse click not detected on the Pic control, event WITH the SS_NOTIFY style, while it's detected on free parts of the gui???

Thanks!

#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 386, 218)
Global $Pic1 = GUICtrlCreatePic("", 8, 8, 184, 200, BitOR($GUI_SS_DEFAULT_PIC,$WS_BORDER,$SS_NOTIFY))
GUIRegisterMsg($WM_LBUTTONDOWN, "WM_LBUTTONDOWN")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd

Func WM_LBUTTONDOWN($hWnd, $iMsg, $iwParam, $ilParam)
    $iX = BitAND($ilParam, 0xFFFF) - 160
    $iY = BitShift($ilParam, 16) - 8
    ConsoleWrite($iX & "," & $iY & @CRLF)
EndFunc

Share this post


Link to post
Share on other sites

I suspect because the window is receiving the message, not the control, which is basically a child window .

I don't know if GUICtrlRecvMsg is applicable here, I would start with something along the lines of.

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Pic1
            _func_to_determine_control_coordinates()

    EndSwitch
WEnd
Edited by JohnOne

AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Share this post


Link to post
Share on other sites

A Static(Pic) control send STN_CLICKED through WM_COMMAND 

Reference

Have a look

#include-once
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>

Global Const $STN_CLICKED = 0
Global Const $STN_DBLCLK = 1


Global $Form1 = GUICreate("Form1", 386, 218)
GUICtrlCreatePic("", 8, 8, 184, 200, BitOR($GUI_SS_DEFAULT_PIC, $WS_BORDER, $SS_NOTIFY))
Global $Pic1 = GUICtrlGetHandle(-1)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
GUISetState(@SW_SHOW)


While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd

Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)

    If $ilParam = $Pic1 Then

        Switch _WinAPI_HiWord($iwParam)

            Case $STN_CLICKED

                ConsoleWrite("Clicked")

            Case $STN_DBLCLK

                ConsoleWrite("Double Clicked")

        EndSwitch

        ConsoleWrite(" at (" & _WinAPI_GetMousePosX(True, $Form1) & "," & _WinAPI_GetMousePosY(True, $Form1) & ")" & @CRLF)

    EndIf

EndFunc   ;==>WM_COMMAND

Regards :)


My code:

PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.

Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners.

MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. 

Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression.

Share this post


Link to post
Share on other sites

Thanks for the answers!

But neither are good for me, because I also need to handle WM_LBUTTONUP, WM_RBUTTONDOWN and WM_RBUTTONUP

I'm able to make some non-optimised code with _IsPressed, MouseGetPosX ... but I want (if possible) a solution as elegant than handling window messages in my first post.

Share this post


Link to post
Share on other sites

If you don't want to handle WM_COMMAND

here is a work-around

#include-once
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>


Global $Form1 = GUICreate("Form1", 386, 218)
Global $Pic1 = GUICtrlCreatePic("", 8, 8, 184, 200, BitOR($GUI_SS_DEFAULT_PIC, $WS_BORDER, $SS_NOTIFY))

GUISetState(@SW_SHOW)


Do
    $nMsg = GUIGetMsg()

    Switch $nMsg

        Case $GUI_EVENT_PRIMARYDOWN

            $aInfo = GUIGetCursorInfo()
            If $aInfo[4] = $Pic1 Then ConsoleWrite("Pic Clicked" & @CRLF)

    EndSwitch


Until $nMsg = $GUI_EVENT_CLOSE

Yet another

#include-once
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>

Global $Form1 = GUICreate("Form1", 386, 218)
Global $Pic1 = GUICtrlCreatePic("", 8, 8, 184, 200, BitOR($GUI_SS_DEFAULT_PIC, $WS_BORDER, $SS_NOTIFY))

GUISetState(@SW_SHOW)


Do
    $nMsg = GUIGetMsg()

    Switch $nMsg

        Case $GUI_EVENT_PRIMARYDOWN

            WM_LBUTTONDOWN($Form1)

    EndSwitch


Until $nMsg = $GUI_EVENT_CLOSE

Func WM_LBUTTONDOWN($hWnd)

    $iX = _WinAPI_GetMousePosX(True, $hWnd)
    $iY = _WinAPI_GetMousePosY(True, $hWnd)

    $aInfo = GUIGetCursorInfo()
    If $aInfo[4] = $Pic1 Then ConsoleWrite("Clk")

    ConsoleWrite(@TAB & $iX & "," & $iY & @CRLF)

EndFunc   ;==>WM_LBUTTONDOWN 

Regards :)

Edited by PhoenixXL

My code:

PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.

Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners.

MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. 

Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression.

Share this post


Link to post
Share on other sites

Solved for now, thanks! Gonna use GUI events for my current problem.

But I'm always looking for a way to fire a WM_LBUTTONDOWN from a static control.

PS: I will use something like this

#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Global $Form1 = GUICreate("Form1", 386, 218)
Global $Pic1 = GUICtrlCreatePic("", 8, 8, 184, 200, BitOR($GUI_SS_DEFAULT_PIC, $WS_BORDER, $SS_NOTIFY))

GUISetState(@SW_SHOW)


Do
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_PRIMARYDOWN
            MOUSE($Form1, 1)
        Case $GUI_EVENT_PRIMARYUP
            MOUSE($Form1, 0)
    EndSwitch
Until $nMsg = $GUI_EVENT_CLOSE

Func MOUSE($hWnd, $iCode)

    $aInfo = GUIGetCursorInfo()
    If $aInfo[4] = $Pic1 Then
        Switch $iCode
            Case 1
                ConsoleWrite("down @ " & $aInfo[0] - 8 & "," & $aInfo[1] - 8 & @CRLF)
            Case 0
                ConsoleWrite("up @ " & $aInfo[0] - 8 & "," & $aInfo[1] - 8 & @CRLF)
        EndSwitch
    EndIf

EndFunc   ;==>WM_LBUTTONDOWN
Edited by matwachich

Share this post


Link to post
Share on other sites

You register the message for the GUI, not the static control to receive the event of the static control through the Window Procedure of the main GUI, you would have to subclass the Static control and route the message received there to the parent GUI

Have a look in the following script

#include-once
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <WinAPI.au3>

Global $Form1 = GUICreate("Form1", 386, 218)
GUICtrlCreatePic("", 8, 8, 184, 200, BitOR($GUI_SS_DEFAULT_PIC, $WS_BORDER, $SS_NOTIFY))
Global $Pic1 = GUICtrlGetHandle(-1) ;get the handle for identifies the static control.

DeclareGlobals()

;register the message
GUIRegisterMsg($WM_LBUTTONDOWN, "WM_LBUTTONDOWN")
GUISetState(@SW_SHOW)

Do
    Sleep(10)
Until GUIGetMsg() = $GUI_EVENT_CLOSE


Func DeclareGlobals()

    ;used this to declare the globals required for the subclass.
    ;only to make the script look good.


    ;the function to release the resources upon exit
    OnAutoItExitRegister("Cleanup")

    ;callback
    Global $hStub = DllCallbackRegister("_WndProc", "long", "hwnd;uint;wparam;lparam")
    ;old window procedure
    Global $lpOldWndProc = _WinAPI_SetWindowLong($Pic1, $GWL_WNDPROC, DllCallbackGetPtr($hStub))

EndFunc   ;==>DeclareGlobals


Func _WndProc($hWnd, $iMsg, $iwParam, $ilParam)

    ;proceed the message to the parent
    Switch $iMsg
        Case $WM_LBUTTONDOWN

            Local $hParent = _WinAPI_GetParent($hWnd)

            Local $tPoint = DllStructCreate($tagPOINT)
            DllStructSetData($tPoint, 1, _WinAPI_LoWord($ilParam))
            DllStructSetData($tPoint, 2, _WinAPI_HiWord($ilParam))

            ;convert the points of the picture with respect to that of the parent.
            _WinAPI_ClientToScreen($hWnd, $tPoint)
            _WinAPI_ScreenToClient($hParent, $tPoint)

            ;make the new ilParam.
            $ilParam = _WinAPI_MakeLong(DllStructGetData($tPoint, 1), DllStructGetData($tPoint, 2))

            ;send the message to the main GUI.
            _WinAPI_PostMessage($hParent, $WM_LBUTTONDOWN, $iwParam, $ilParam)

            Return 1 ;block the default processing
    EndSwitch

    Return _WinAPI_CallWindowProc($lpOldWndProc, $hWnd, $iMsg, $iwParam, $ilParam)

EndFunc   ;==>_WndProc

;http://msdn.microsoft.com/en-us/library/windows/desktop/ms645607(v=vs.85).aspx
;Posted when the user presses the left mouse button while the cursor is in the client area of a window.
Func WM_LBUTTONDOWN($hWnd, $iMsg, $iwParam, $ilParam)

    $iX = BitAND($ilParam, 0xFFFF)
    $iY = BitShift($ilParam, 16)

    ConsoleWrite($iX & "," & $iY & @CRLF)

EndFunc   ;==>WM_LBUTTONDOWN

;release the resources
Func Cleanup()
    _WinAPI_SetWindowLong($Pic1, $GWL_WNDPROC, $lpOldWndProc)
    DllCallbackFree($hStub)
EndFunc   ;==>Cleanup

Regards :)


My code:

PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.

Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners.

MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. 

Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression.

Share this post


Link to post
Share on other sites

Very interesting!

But too overhead for what I'm doing actualy. But I'm gonna study it, perhaps it will be usefull in the future.

Thank you!

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  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Jahar
      Hi,
      I am new to Autoit, Kindly guide me. I wanted to send a message with HTTP/GET to the URL https://ghsff.it/. How to do so?
    • By kingjacob90
      Hi
      So I am trying to click the green button, this button is not always in the same place. So fare I am trying to click it by finding the color but there is also something else with the same color on the screen (circled in yellow) that is causing issues. Is there a way to use the Title and Class of the window (can't be just the window as there are more than one with the same name).
      How does AutoIt Info get this information?

    • By nacerbaaziz
      question about _WinAPI_CreateWindowEx
      good morning
      welcome autoit team
      please i need your help
      i've searched a lot about how to use the _WinAPI_CreateWindowEx
      finally i found an example
      but i found some problem i hope you can help me
      firstly, i want to set the controls focussable with the keyboard input
      i already used the ws_tabStop but it did not work with me.
      secondly, i want to set some access keys linked with the window
      such as control+o enable the open button and control+f4 exit the app
      note: i need a local access keys and not a global hotkeys
      such as GUISetAccelerators
      finaly, before i will put the code here i must clarify a few things.
      1. you will ask me why you don't use the GUICreate function
      here i'll tell you that it as dialog and It is a little heavy in motion with screen readers.
      the screen readers for blind has some function that work with dialogs and others work with full windows style
      2. you will ask me why you didn't search the net for that?
      i will tell you that all examples that i found in the internet with pdfs and Picture books.
      i found some examples in microsoft but it with cpp.
      ok here is the code
      i hope you can help me to do what i want
      thank you in advance
       
      ; Small AutoIt Application that uses Windows API ; Written by Yuraj #NoTrayIcon #include <_RegisterClassEx.au3> #include <WinAPI.au3> #include <WindowsConstants.au3> #include <ButtonConstants.au3> #include <EditConstants.au3> #include <FontConstants.au3> AutoItSetOption("MustDeclareVars", 1) ; Window definitions Const $WinWidth = 370 Const $WinHeight = 350 Const $WinXPos = (@DesktopWidth / 2) - ($WinWidth / 2) Const $WinYPos = (@DesktopHeight / 2) - ($WinHeight / 2) Const $WinTitle = "Win32 Application - Text reader" Const $WinClass = "mainapp" Const $WinIcon = _WinAPI_LoadIcon(_WinAPI_GetModuleHandle("shell32.dll"), 13) ; Windows handles Global $hwnd, $edit1, $btn1, $btn2 ; Fonts Global $fnt1 ; Register class, Create the window Local $retVal = __WinAPI_RegisterClassEx($WinClass, "WindowCallback", $WinIcon, 0, _WinAPI_GetSysColor($COLOR_BTNFACE), BitOR($CS_DEFAULTSTYLE, $CS_DROPSHADOW)) ; If $retVal == 0 Then ; If registerclass fails MsgBox(16, "Error", "Error while registering window class!") Exit EndIf ; Create windows/controls $hwnd = _WinAPI_CreateWindowEx($WS_EX_STATICEDGE, $WinClass, $WinTitle, BitOR($WS_OVERLAPPED,$WS_SYSMENU, $WS_MINIMIZEBOX, $WS_GROUP, $WS_DLGFRAME), $WinXPos, $WinYPos, $WinWidth, $WinHeight, 0) $btn1 = _WinAPI_CreateWindowEx(0, "button", "Open file ...", BitOR($WS_VISIBLE, $WS_CHILD, $WS_TABSTOP, $WS_CLIPCHILDREN), 25, 270, 100, 30,$hwnd) $btn2 = _WinAPI_CreateWindowEx(0, "Button", "Exit", BitOR($WS_VISIBLE, $WS_CHILD, $WS_TABSTOP, $WS_CLIPCHILDREN), 235, 270, 100, 30, $hwnd) $edit1 = _WinAPI_CreateWindowEx(0, "edit", "text", BitOR($WS_VISIBLE, $WS_CHILD, $WS_VSCROLL, $ES_AUTOVSCROLL, $es_readOnly, $WS_TABSTOP), 5, 5, $WinWidth - 15, $WinHeight - 100, $hwnd) ; Set controls identifiers _WinAPI_SetWindowLong($btn1,$GWL_ID,150) _WinAPI_SetWindowLong($btn2,$GWL_ID,160) ; Set (controls) fonts $fnt1 = _CreateFont("MS Sans Serif", 15) _WinAPI_SetFont($btn1, $fnt1) _WinAPI_SetFont($btn2, $fnt1) _WinAPI_SetFont($edit1, $fnt1) ; Set focus to edit _WinAPI_SetFocus($edit1) ; Show window _WinAPI_ShowWindow($hwnd) _WinAPI_UpdateWindow($hwnd) ; Main loop that keep application opened While 1 Sleep(100) WEnd ;=================================================================; ; WINDOW CALLBACK ... ;=================================================================; Func WindowCallback($_hwnd, $iMsg, $wParam, $lParam) Local $iNC, $iID Switch $iMsg ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Case $WM_CLOSE ; Show message on closing If MsgBox(48 + 4, $WinTitle, "Do you want really exit?", 0, $hwnd) <> 6 Then Return 0 ; Call destructor and then exit main thread FinalizeApp() Exit ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Case $WM_COMMAND $iNC = _WinAPI_HiWord($wParam) $iID = _WinAPI_LoWord($lParam) Switch $iNC Case $BN_CLICKED ; When is control clicked Switch _WinAPI_GetDlgCtrlID($iID) Case _WinAPI_GetDlgCtrlID($btn1) BtnOpenFileClick() Case _WinAPI_GetDlgCtrlID($btn2) BtnExitClick() EndSwitch EndSwitch ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; EndSwitch Return _WinAPI_DefWindowProc($_hwnd, $iMsg, $wParam, $lParam) EndFunc ;==>WindowCallback Func FinalizeApp() _WinAPI_DeleteObject($fnt1) _WinAPI_DestroyWindow($hwnd) __WinAPI_UnregisterClass($WinClass) EndFunc ;==>FinalizeApp Func _CreateFont($fontName, $height = 16, $style = $FW_NORMAL, $italic = False, $underline = False, $strikeout = False) Local $hFont = _WinAPI_CreateFont($height, 0, 0, 0, $style, $italic, $underline, $strikeout, $DEFAULT_CHARSET, _ $OUT_DEFAULT_PRECIS, $CLIP_DEFAULT_PRECIS, $DEFAULT_QUALITY, $DEFAULT_PITCH, $fontName) Return $hFont EndFunc ;==>_CreateFont ;=================================================================; ; WINDOW EVENTS ;=================================================================; Func BtnOpenFileClick() Local $ret = _WinAPI_GetOpenFileName("", "Text files (*.txt)|All files (*.*)", ".", "", "", 1, 0, 0, $hwnd) If ($ret[0] > 0) Then Local $path = $ret[1] & "\" & $ret[2] Local $file = _WinAPI_CreateFile($path, 2, 2) Local $buf = DllStructCreate("byte[" & _WinAPI_GetFileSizeEx($file) & "]") Local $i = 0 _WinAPI_ReadFile($file, DllStructGetPtr($buf), _WinAPI_GetFileSizeEx($file), $i) ; Close file handle _WinAPI_CloseHandle($file) _WinAPI_SetWindowText($edit1, BinaryToString(DllStructGetData($buf, 1))) EndIf EndFunc ;==>BtnOpenFileClick Func BtnExitClick() FinalizeApp() Exit EndFunc ;==>BtnExitClick  
      _RegisterClassEx.au3
    • By MrCreatoR
      This UDF allows to set an events handler for Mouse device.
       
      The beginning...
      I searched for a way to disable the Mouse Primary click, and be able to call some function when the click event is received...
      Big thanks to amel27 for this one, i only organized the whole stuff to UDF style.
       
      Example:
      #include <GUIConstantsEx.au3> #include "MouseOnEvent.au3" HotKeySet("{ESC}", "_Quit") _Example_Intro() _Example_Limit_Window() Func _Example_Intro() MsgBox(64, "Attention!", "Let's set event function for mouse wheel *scrolling* up and down", 5) ;Set event function for mouse wheel *scrolling* up/down and primary button *down* action (call our function when the events recieved) _MouseSetOnEvent($MOUSE_WHEELSCROLLDOWN_EVENT, "_MouseWheel_Events") _MouseSetOnEvent($MOUSE_WHEELSCROLLUP_EVENT, "_MouseWheel_Events") _MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT, "_MousePrimaryDown_Event") Sleep(3000) ;UnSet the events _MouseSetOnEvent($MOUSE_WHEELSCROLLDOWN_EVENT) _MouseSetOnEvent($MOUSE_WHEELSCROLLUP_EVENT) _MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT) ToolTip("") MsgBox(64, "Attention!", "Now let's disable Secondary mouse button up action, and call our event function.", 5) _MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT, "_MouseSecondaryUp_Event", 0, 1) Sleep(5000) _MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT) ToolTip("") EndFunc Func _Example_Limit_Window() Local $hGUI = GUICreate("MouseOnEvent UDF Example - Restrict events on specific window") GUICtrlCreateLabel("Try to click on that specific GUI window", 40, 40, 300, 30) GUICtrlSetFont(-1, 12, 800) GUICtrlCreateLabel("Press <ESC> to exit", 10, 10) GUISetState() _MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT, "_MousePrimaryDown_Event", $hGUI) ;A little(?) bugie when you mix different events :( ;_MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT, "_MouseSecondaryUp_Event", $hGUI) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $GUI_EVENT_PRIMARYDOWN MsgBox(0, "", "Should not be shown ;)") EndSwitch WEnd _MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT) ;_MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT) EndFunc Func _MouseWheel_Events($iEvent) Switch $iEvent Case $MOUSE_WHEELSCROLLDOWN_EVENT ToolTip("Wheel Mouse Button (scrolling) DOWN Blocked") Case $MOUSE_WHEELSCROLLUP_EVENT ToolTip("Wheel Mouse Button (scrolling) UP Blocked") EndSwitch Return $MOE_BLOCKDEFPROC ;Block EndFunc Func _MousePrimaryDown_Event() ToolTip("Primary Mouse Button Down Blocked") Return $MOE_BLOCKDEFPROC ;Block EndFunc Func _MouseSecondaryUp_Event() ToolTip("Secondary Mouse Button Up Blocked") EndFunc Func _Quit() Exit EndFunc  
      Available Events Constants:
       
      ------------------------------------------
      CHANGELOG:
      Download:
      Attached:     MouseOnEvent_2.4.zip
      Old version:
      MouseOnEvent.zip - v2.3
      MouseOnEvent_2.1.zip
      MouseOnEvent_2.0.zip
      MouseOnEvent_UDF_1.9.zip
      MouseSetOnEvent_UDF_1.8.zip
      MouseSetOnEvent_UDF_1.7.zip
      MouseSetOnEvent_UDF_1.6.zip
      MouseSetOnEvent_UDF_1.5.zip
      MouseSetOnEvent_UDF_1.4.zip
      MouseSetOnEvent_UDF_1.3.zip
      Previous downloads: 146 + 200 + 804
      MouseOnEvent.zip
      MouseOnEvent.zip
    • By nacerbaaziz
      hello sirs, please i created a tool witch get the focused control in a window and play a audio file linked with this controls
      e.g buttons, checkBoxes, radios, comboboxes, and others
      i know that their is a function that give us the control focus but it return the classNN
      i want to get the class name to use it with a switch and
      because their are more than class e.g button tbutton timagebutton tnewButton...
      please can any one help me to get the class name not the classnn
      thanks in advance
×
×
  • Create New...