Jump to content
Sign in to follow this  
zvvyt

Scroll mouseover window, or window w/o focus - Help

Recommended Posts

Hi there ya'll!

What I've got is 2 GUIs being ontop of eachother, one being the others parent.

The parent serves mostly as a background as the child is a bit smaller, transparent and contains a set of images/icons. The child GUI also has a scrollbar created by _GUIScrollbars_Generate.

The problem I'm having is that in the parent GUI I have an inputbox, created by GUICtrlCreateInput, and as that inputbox got focus I want to be able to scroll the child GUI.

I can't set the inputbox in the child instead as I guess it would be too much work moving it as I scroll along.

As I'm having it now I manually have to click inside the child GUI to be able to scroll it, and then click inside the parent/inputbox to type again.

Don't know if there's any other great solution to this. I just thought that a mouseover scroll be OK!

If you got any other solution I'd happily take that aswell! :D

Best regards,

zvvyt

Share this post


Link to post
Share on other sites

zvvyt,

You have been here long enough to know that your chances of a response are much higher if you include some code we can look at. I for one am not writing a whole bunch of code (that may not look anything like the code you have) just to test. ;)

So please post a short reproducer script and we will take a look. :)

M23


Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

That's true, sorry.

I think that these parts are those that matter and are of interest. Poke me harder if you need more x)

#include <ButtonConstants.au3>
#include <GUIScrollbars_Ex.au3>
#include <winapi.au3>

Global $Icon_Selected[2]; $Icon_Selected[0] = Icon number ; $Icon_Selected[1] = Icon name
$Icon_Select_Screen_Background = GUICreate("Icon Select Screen",765,400,-1,-1,$WS_MINIMIZEBOX + $ws_popup)
GUICtrlCreatePic(@WorkingDir&"ImagesLayoutIcon Select.jpg",0,0,765,450,$BS_FLAT)
$Icon_Update_Button = GUICtrlCreateButton("Check for new Icons",325,20,150,25)
GUICtrlSetState(-1,$gui_show)
$Icon_Name_Search = GUICtrlCreateInput("Enter name to search",500,20,125,25)
GUICtrlSetState(-1,$gui_show)
$Icon_Select_Screen_Minimize = GUICtrlCreateIcon("icons.dll","MINIMIZE",705,5,16,16)
GUICtrlSetTip(-1,"Click to minimize")
$Icon_Select_Screen_Close = GUICtrlCreateIcon("icons.dll","CLOSE",730,5,16,16)
GUICtrlSetTip(-1,"Click to close")
GUICtrlCreateLabel("",0,0,765,50,-1,$GUI_WS_EX_PARENTDRAG) ;The invisible bar that allows one to drag and move the Icon select screen-window
GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
$Icon_Select_Screen = GUICreate("",760,350,5,50,$ws_popup,bitor($WS_EX_MDICHILD, $WS_EX_LAYERED),$Icon_Select_Screen_Background)
$ReadIcons = IniReadSection("List.ini","Icons")
Add_Icons()
Icon_Selection()

Func Add_Icons()
GUISwitch($Icon_Select_Screen)
GUISetState(@sw_hide,$Icon_Select_Screen)
_GUIScrollbars_Scroll_Page($Icon_Select_Screen,0,1)
$Icon_Icon_Startcord_X = 10
$Icon_Icon_Startcord_Y = 10
$Row_Count = 0
$Icon_Icon_Cord_X = $Icon_Icon_Startcord_X
$Icon_Icon_Cord_Y = $Icon_Icon_Startcord_Y
for $1=1 to $ReadIcons[0][0] step +1
if $Row_Count = 10 Then
$Icon_Icon_Cord_X = $Icon_Icon_Startcord_X
$Icon_Icon_Cord_Y = $Icon_Icon_Cord_Y+74
$Row_count = 0
EndIf
GUICtrlCreatePic(@WorkingDir&"ÖverflödigtIcons in numberstesticons"&$ReadIcons[$1][0]&".jpg",$Icon_Icon_Cord_X,$Icon_Icon_Cord_Y,64,64)
$Icon_Icon_Cord_X = $Icon_Icon_Cord_X+64+$Icon_Icon_Startcord_X
$Row_count=$Row_Count+1
Next
if $Icon_Icon_Cord_Y+64>450 Then
_GUIScrollbars_Generate($Icon_Select_Screen,"",$Icon_Icon_Cord_Y+64)
_GUIScrollBars_ShowScrollBar($Icon_Select_Screen, $SB_VERT, False)
EndIf

GUISetBkColor(0xacbdef,$Icon_Select_Screen)
_WINAPI_SetLayeredWindowAttributes($Icon_Select_Screen, 0xacbdef, 255)
GUISetState(@sw_show,$Icon_Select_Screen)
Icon_Selection()
EndFunc

func Icon_Selection()
GUISetState(@sw_show,$Icon_Select_Screen)
GUISetState(@sw_show,$Icon_Select_Screen_Background)
if GUICtrlRead($Icon_Name_Search) = "" then GUICtrlSetState($Icon_Name_Search,$GUI_FOCUS)
local $CSS_msg
while 1
;if WinActive($Icon_Select_Screen_Background) then WinActivate($Icon_Select_Screen)
if GUICtrlRead($Icon_Name_Search) <> "" and GUICtrlRead($Icon_Name_Search) <> "Enter name to search" Then
Clear_Icons($ReadIcons[0][0])
Icon_Name_Search()
EndIf
$CSS_msg = GUIGetMsg()
if $CSS_msg>8 then
;MsgBox(0,"",guictrlgetstate($Icon_Name_Search))
;MsgBox(0,"",$CSS_msg-8)
$Icon_Selected[0]=$ReadIcons[$CSS_msg-8][0]
$Icon_Selected[1]=$ReadIcons[$CSS_msg-8][1]
MsgBox(0,"",$Icon_Selected[0]&" "&$Icon_Selected[1])
EndIf
switch $CSS_msg
case $Icon_Select_Screen_Minimize
GUISetState(@sw_minimize,$Icon_Select_Screen_Background)
case $Icon_Select_Screen_Close
Exit
case $Icon_Update_Button
Icon_Update()
EndSwitch
WEnd
EndFunc
Edited by zvvyt

Share this post


Link to post
Share on other sites

zvvyt,

That was fun! :D

I tried to use the WindowFromPoint API function but the fact that the icon GUI is a child seemed to defeat it. So I have gone this rather less elegant way (look for the <<<<<<<<<<< lines as usual):

#include <ButtonConstants.au3>
#include <GUIScrollbars_Ex.au3>
#include <winapi.au3>

Global $fOver_Main = False ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Global $Icon_Selected[2]; $Icon_Selected[0] = Icon number ; $Icon_Selected[1] = Icon name

$Icon_Select_Screen_Background = GUICreate("zvvyt Build Creator for LoL - Icon Select Screen", 765, 400, -1, -1, $WS_MINIMIZEBOX + $ws_popup)
ConsoleWrite($Icon_Select_Screen_Background & @CRLF)
GUISetBkColor(0xFF0000)
;GUICtrlCreatePic(@WorkingDir & "ImagesLayoutIcon Select.jpg", 0, 0, 765, 450, $BS_FLAT)
$Icon_Update_Button = GUICtrlCreateButton("Check for new Icons", 325, 20, 150, 25)
GUICtrlSetState(-1, $gui_show)
$Icon_Name_Search = GUICtrlCreateInput("Enter name to search", 500, 20, 125, 25)
GUICtrlSetState(-1, $gui_show)

$Icon_Select_Screen_Minimize = GUICtrlCreateIcon("icons.dll", "MINIMIZE", 705, 5, 16, 16)
GUICtrlSetTip(-1, "Click to minimize")
$Icon_Select_Screen_Close = GUICtrlCreateIcon("icons.dll", "CLOSE", 730, 5, 16, 16)
GUICtrlSetTip(-1, "Click to close")
GUICtrlCreateLabel("", 0, 0, 765, 50, -1, $GUI_WS_EX_PARENTDRAG) ;The invisible bar that allows one to drag and move the Icon select screen-window
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

$Icon_Select_Screen = 0

GUISetState()

$Icon_Select_Screen = GUICreate("", 755, 345, 5, 50, $ws_popup, BitOR($WS_EX_MDICHILD, $WS_EX_LAYERED), $Icon_Select_Screen_Background)
;$ReadIcons = IniReadSection("List.ini", "Icons")
Add_Icons()
;Icon_Selection()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch

    $aCInfo = GUIGetCursorInfo($Icon_Select_Screen_Background) ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    If $aCInfo[1] < 50 Then
        If $fOver_Main = False Then
            GUICtrlSetState($Icon_Name_Search, $GUI_FOCUS)
            $fOver_Main = True
        EndIf
    Else
        $fOver_Main = False
    EndIf ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

WEnd


Func Add_Icons()
    GUISwitch($Icon_Select_Screen)
    GUISetState(@SW_HIDE, $Icon_Select_Screen)
    ;_GUIScrollbars_Scroll_Page($Icon_Select_Screen, 0, 1)
    $Icon_Icon_Startcord_X = 10
    $Icon_Icon_Startcord_Y = 10
    $Row_Count = 0
    $Icon_Icon_Cord_X = $Icon_Icon_Startcord_X
    $Icon_Icon_Cord_Y = $Icon_Icon_Startcord_Y
    For $1 = 1 To 100
        If $Row_Count = 10 Then
            $Icon_Icon_Cord_X = $Icon_Icon_Startcord_X
            $Icon_Icon_Cord_Y = $Icon_Icon_Cord_Y + 74
            $Row_Count = 0
        EndIf
        GUICtrlCreateLabel("", $Icon_Icon_Cord_X, $Icon_Icon_Cord_Y, 64, 64)
        GUICtrlSetBkColor(-1, 0x00FF00)
        $Icon_Icon_Cord_X = $Icon_Icon_Cord_X + 64 + $Icon_Icon_Startcord_X
        $Row_Count = $Row_Count + 1
    Next
    If $Icon_Icon_Cord_Y + 64 > 450 Then
        _GUIScrollbars_Generate($Icon_Select_Screen, "", $Icon_Icon_Cord_Y + 64)
        ;_GUIScrollBars_ShowScrollBar($Icon_Select_Screen, $SB_VERT, False)
    EndIf

    GUISetBkColor(0xacbdef, $Icon_Select_Screen)
    _WinAPI_SetLayeredWindowAttributes($Icon_Select_Screen, 0xacbdef, 255)
    GUISetState(@SW_SHOW, $Icon_Select_Screen)
    ;Icon_Selection()
EndFunc   ;==>Add_Icons

I hope that helps. :)

M23


Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

First of all: What did you consider "fun"? x)

And second:

What you gave me actually functioned quite great, only that the inputbox only gets focus when the cursor is above the child GUI, not that the child GUI gets focus when that one is hovered.

To get the child GUI to get focused when it's hovered I just added WinActivate($Icon_Select_Screen) to your function, so your function now looks like this:

$aCInfo = GUIGetCursorInfo($Icon_Select_Screen_Background) ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
If $aCInfo[1] < 50 Then
     If $fOver_Main = False Then
         GUICtrlSetState($Icon_Name_Search, $GUI_FOCUS)
         $fOver_Main = True
     EndIf
Else
if $fOver_Main = False then
Else
        if WinActive($Icon_Select_Screen_Background) then
                WinActivate($Icon_Select_Screen); -----------------------------------
                $fOver_Main = False
        EndIf
EndIf
EndIf ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

AND (lol) by doing this I just noticed that when I have the script running in background my cursormovement on the forums trigger the function, activating the child GUI and makes it the top window >__<'

EDIT: Is there else a possible, and not too hardcore, solution to register the scrollcommand when the inputbox and the background/parent GUI is active and send that to the not focused child GUI?

2nd edit: Updated the script with "if WinActive($Icon_Select_Screen_Background)" to bypass the earlier problem.

Edited by zvvyt

Share this post


Link to post
Share on other sites

zvvyt,

only that the inputbox only gets focus when the cursor is above the child GUI, not that the child GUI gets focus when that one is hovered

But the end result is the same, no? You can use the scrollbar without clicking in the child and the input gets focus when the mouse is not over the child. ;)

M23


Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

But the end result is the same, no? You can use the scrollbar without clicking in the child and the input gets focus when the mouse is not over the child. ;)

Well .. Both yes and no I guess.

It's true, now I don't need to click in either the inputbox nor in the child GUI to make the magic happen, but still I can't have the inputbox at focus and scroll at the same time x)

Don't know if I'm wishing for the impossible by having them at 2 separate GUIs, but that was what I had my hopes for: Have both in focus at the same time-ish.

Sorry if I made that unclear at start, but many thanks for this function and for opening my eyes to the usefulness of this! :)

Best regards,

Share this post


Link to post
Share on other sites

zvvyt,

Try this: :)

#include <ButtonConstants.au3>
#include <GUIScrollbars_Ex.au3>
#include <winapi.au3>

Global $Icon_Selected[2]; $Icon_Selected[0] = Icon number ; $Icon_Selected[1] = Icon name

$Icon_Select_Screen_Background = GUICreate("zvvyt Build Creator for LoL - Icon Select Screen", 765, 400, -1, -1, $WS_MINIMIZEBOX + $ws_popup)
ConsoleWrite($Icon_Select_Screen_Background & @CRLF)
GUISetBkColor(0xFF0000)
;GUICtrlCreatePic(@WorkingDir & "ImagesLayoutIcon Select.jpg", 0, 0, 765, 450, $BS_FLAT)
$Icon_Update_Button = GUICtrlCreateButton("Check for new Icons", 325, 20, 150, 25)
GUICtrlSetState(-1, $gui_show)
$Icon_Name_Search = GUICtrlCreateInput("Enter name to search", 500, 20, 125, 25)
GUICtrlSetState(-1, $gui_show)

$Icon_Select_Screen_Minimize = GUICtrlCreateIcon("icons.dll", "MINIMIZE", 705, 5, 16, 16)
GUICtrlSetTip(-1, "Click to minimize")
$Icon_Select_Screen_Close = GUICtrlCreateIcon("icons.dll", "CLOSE", 730, 5, 16, 16)
GUICtrlSetTip(-1, "Click to close")
GUICtrlCreateLabel("", 0, 0, 765, 50, -1, $GUI_WS_EX_PARENTDRAG) ;The invisible bar that allows one to drag and move the Icon select screen-window
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

$Icon_Select_Screen = 0

GUISetState()

$Icon_Select_Screen = GUICreate("", 755, 345, 5, 50, $ws_popup, BitOR($WS_EX_MDICHILD, $WS_EX_LAYERED), $Icon_Select_Screen_Background)
;$ReadIcons = IniReadSection("List.ini", "Icons")
Add_Icons()
;Icon_Selection()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $GUI_EVENT_PRIMARYUP ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
            GUICtrlSetState($Icon_Name_Search, $GUI_FOCUS)
    EndSwitch
WEnd


Func Add_Icons()
    GUISwitch($Icon_Select_Screen)
    GUISetState(@SW_HIDE, $Icon_Select_Screen)
    ;_GUIScrollbars_Scroll_Page($Icon_Select_Screen, 0, 1)
    $Icon_Icon_Startcord_X = 10
    $Icon_Icon_Startcord_Y = 10
    $Row_Count = 0
    $Icon_Icon_Cord_X = $Icon_Icon_Startcord_X
    $Icon_Icon_Cord_Y = $Icon_Icon_Startcord_Y
    For $1 = 1 To 100
        If $Row_Count = 10 Then
            $Icon_Icon_Cord_X = $Icon_Icon_Startcord_X
            $Icon_Icon_Cord_Y = $Icon_Icon_Cord_Y + 74
            $Row_Count = 0
        EndIf
        GUICtrlCreateLabel("", $Icon_Icon_Cord_X, $Icon_Icon_Cord_Y, 64, 64)
        GUICtrlSetBkColor(-1, 0x00FF00)
        $Icon_Icon_Cord_X = $Icon_Icon_Cord_X + 64 + $Icon_Icon_Startcord_X
        $Row_Count = $Row_Count + 1
    Next
    If $Icon_Icon_Cord_Y + 64 > 450 Then
        _GUIScrollbars_Generate($Icon_Select_Screen, "", $Icon_Icon_Cord_Y + 64)
        ;_GUIScrollBars_ShowScrollBar($Icon_Select_Screen, $SB_VERT, False)
    EndIf

    GUISetBkColor(0xacbdef, $Icon_Select_Screen)
    _WinAPI_SetLayeredWindowAttributes($Icon_Select_Screen, 0xacbdef, 255)
    GUISetState(@SW_SHOW, $Icon_Select_Screen)
    ;Icon_Selection()
EndFunc   ;==>Add_Icons

Now you get the input in focus as soon as you finish scrolling. Better? ;)

M23


Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

Now you get the input in focus as soon as you finish scrolling. Better? ;)

According to the help-file, "$GUI_EVENT_PRIMARYUP" is "the primary mouse button was released.", so that didn't work at all straightly pasted into the loop =/

But the way you're thinking is the way I want it! Recognise when a scroll is done, switch to the window to scroll and when the scrolling is over, switch back to the box! :D

Best regards,

Share this post


Link to post
Share on other sites

zvvyt,

According to the help-file, "$GUI_EVENT_PRIMARYUP" is "the primary mouse button was released."

And so when you release the mouse button after scrolling, the input is given the focus. :)

that didn't work at all straightly pasted into the loop

Are you telling me that the code I posted did not work? :huh:

M23


Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

And so when you release the mouse button after scrolling, the input is given the focus. :)

Aah, now I see what you're after .. !

In my script I've hid the scrollbar for the visual effect, meaning all my scrolling is handled by the mousewheel.

Are you telling me that the code I posted did not work? :huh:

For the way you ment it to work it worked like a charm! ^__^'

Best regards,

Share this post


Link to post
Share on other sites

zvvyt,

I've hid the scrollbar for the visual effect, meaning all my scrolling is handled by the mousewheel

I see. :)

When I hide the scrollbar on that example script I can use the mousewheel to scroll when the cursor is over the icons and the input remains focused throughout:

#include <ButtonConstants.au3>
#include <GUIScrollbars_Ex.au3>
#include <winapi.au3>

Global $Icon_Selected[2]; $Icon_Selected[0] = Icon number ; $Icon_Selected[1] = Icon name

$Icon_Select_Screen_Background = GUICreate("zvvyt Build Creator for LoL - Icon Select Screen", 765, 400, -1, -1, $WS_MINIMIZEBOX + $ws_popup)
ConsoleWrite($Icon_Select_Screen_Background & @CRLF)
GUISetBkColor(0xFF0000)
;GUICtrlCreatePic(@WorkingDir & "ImagesLayoutIcon Select.jpg", 0, 0, 765, 450, $BS_FLAT)
$Icon_Update_Button = GUICtrlCreateButton("Check for new Icons", 325, 20, 150, 25)
$Icon_Name_Search = GUICtrlCreateInput("Enter name to search", 500, 20, 125, 25)

$Icon_Select_Screen_Minimize = GUICtrlCreateIcon("icons.dll", "MINIMIZE", 705, 5, 16, 16)
GUICtrlSetTip(-1, "Click to minimize")
$Icon_Select_Screen_Close = GUICtrlCreateIcon("icons.dll", "CLOSE", 730, 5, 16, 16)
GUICtrlSetTip(-1, "Click to close")
GUICtrlCreateLabel("", 0, 0, 765, 50, -1, $GUI_WS_EX_PARENTDRAG) ;The invisible bar that allows one to drag and move the Icon select screen-window
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

$Icon_Select_Screen = 0

GUISetState()

$Icon_Select_Screen = GUICreate("", 755, 345, 5, 50, $ws_popup, BitOR($WS_EX_MDICHILD, $WS_EX_LAYERED), $Icon_Select_Screen_Background)
;$ReadIcons = IniReadSection("List.ini", "Icons")
Add_Icons()
;Icon_Selection()

GUICtrlSetState($Icon_Name_Search, $GUI_FOCUS) ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $GUI_EVENT_PRIMARYUP ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
            GUICtrlSetState($Icon_Name_Search, $GUI_FOCUS)
    EndSwitch
WEnd


Func Add_Icons()
    GUISwitch($Icon_Select_Screen)
    GUISetState(@SW_HIDE, $Icon_Select_Screen)
    ;_GUIScrollbars_Scroll_Page($Icon_Select_Screen, 0, 1)
    $Icon_Icon_Startcord_X = 10
    $Icon_Icon_Startcord_Y = 10
    $Row_Count = 0
    $Icon_Icon_Cord_X = $Icon_Icon_Startcord_X
    $Icon_Icon_Cord_Y = $Icon_Icon_Startcord_Y
    For $1 = 1 To 100
        If $Row_Count = 10 Then
            $Icon_Icon_Cord_X = $Icon_Icon_Startcord_X
            $Icon_Icon_Cord_Y = $Icon_Icon_Cord_Y + 74
            $Row_Count = 0
        EndIf
        GUICtrlCreateLabel("", $Icon_Icon_Cord_X, $Icon_Icon_Cord_Y, 64, 64)
        GUICtrlSetBkColor(-1, 0x00FF00)
        $Icon_Icon_Cord_X = $Icon_Icon_Cord_X + 64 + $Icon_Icon_Startcord_X
        $Row_Count = $Row_Count + 1
    Next
    If $Icon_Icon_Cord_Y + 64 > 450 Then
        _GUIScrollbars_Generate($Icon_Select_Screen, "", $Icon_Icon_Cord_Y + 64)
        _GUIScrollBars_ShowScrollBar($Icon_Select_Screen, $SB_VERT, False) ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    EndIf

    GUISetBkColor(0xacbdef, $Icon_Select_Screen)
    _WinAPI_SetLayeredWindowAttributes($Icon_Select_Screen, 0xacbdef, 255)
    GUISetState(@SW_SHOW, $Icon_Select_Screen)
    ;Icon_Selection()
EndFunc   ;==>Add_Icons

Is that not good enough? :huh:

M23


Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

When I hide the scrollbar on that example script I can use the mousewheel to scroll when the cursor is over the icons and the input remains focused throughout:

Is that not good enough? :huh:

Sadly, I won't get that to work for me =/

All I get is the inputbox in focus and I'm unable to scroll at all, because even if I click in the child the $GUI_EVENT_PRIMARYUP returns focus to the inputbox.

I don't get what's wrong as you seem to get it to work =/

Here's my script from the first time I pasted it, updated with your codes. Tell me if you're able to identify the problem :o

#include <ButtonConstants.au3>
#include <GUIScrollbars_Ex.au3>
#include <winapi.au3>

Global $Icon_Selected[2]; $Icon_Selected[0] = Icon number ; $Icon_Selected[1] = Icon name
;Global $fOver_Main = True ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

$Icon_Select_Screen_Background = GUICreate("Icon Select Screen",765,400,-1,-1,$WS_MINIMIZEBOX + $ws_popup)
GUICtrlCreatePic(@WorkingDir&"\Images\Layout\Icon Select.jpg",0,0,765,450,$BS_FLAT)
$Icon_Update_Button = GUICtrlCreateButton("Check for new Icons",325,20,150,25)
GUICtrlSetState(-1,$gui_show)
$Icon_Name_Search = GUICtrlCreateInput("Enter name to search",500,20,125,25)
GUICtrlSetState(-1,$gui_show)
$Icon_Select_Screen_Minimize = GUICtrlCreateIcon("icons.dll","MINIMIZE",705,5,16,16)
GUICtrlSetTip(-1,"Click to minimize")
$Icon_Select_Screen_Close = GUICtrlCreateIcon("icons.dll","CLOSE",730,5,16,16)
GUICtrlSetTip(-1,"Click to close")
GUICtrlCreateLabel("",0,0,765,50,-1,$GUI_WS_EX_PARENTDRAG) ;The invisible bar that allows one to drag and move the Icon select screen-window
GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
$Icon_Select_Screen = GUICreate("",760,350,5,50,$ws_popup,bitor($WS_EX_MDICHILD, $WS_EX_LAYERED),$Icon_Select_Screen_Background)
$ReadIcons = IniReadSection("List.ini","Icons")
Add_Icon_Icons()
Icon_Selection()

Func Add_Icon_Icons()
GUISwitch($Icon_Select_Screen)
GUISetState(@sw_hide,$Icon_Select_Screen)
_GUIScrollbars_Scroll_Page($Icon_Select_Screen,0,1)
$Icon_Icon_Startcord_X = 10
$Icon_Icon_Startcord_Y = 10
$Row_Count = 0
$Icon_Icon_Cord_X = $Icon_Icon_Startcord_X
$Icon_Icon_Cord_Y = $Icon_Icon_Startcord_Y
for $1=1 to $ReadIcons[0][0] step +1
if $Row_Count = 10 Then
$Icon_Icon_Cord_X = $Icon_Icon_Startcord_X
$Icon_Icon_Cord_Y = $Icon_Icon_Cord_Y+74
$Row_count = 0
EndIf
GUICtrlCreatePic(@WorkingDir&"\Överflödigt\Icons in numbers\test\icons\"&$ReadIcons[$1][0]&".jpg",$Icon_Icon_Cord_X,$Icon_Icon_Cord_Y,64,64)
$Icon_Icon_Cord_X = $Icon_Icon_Cord_X+64+$Icon_Icon_Startcord_X
$Row_count=$Row_Count+1
Next
if $Icon_Icon_Cord_Y+64>450 Then
_GUIScrollbars_Generate($Icon_Select_Screen,"",$Icon_Icon_Cord_Y+64)
_GUIScrollBars_ShowScrollBar($Icon_Select_Screen, $SB_VERT, False)
EndIf

GUISetBkColor(0xacbdef,$Icon_Select_Screen)
_WINAPI_SetLayeredWindowAttributes($Icon_Select_Screen, 0xacbdef, 255)
GUISetState(@sw_show,$Icon_Select_Screen)
Icon_Selection()
EndFunc

func Icon_Selection()
GUISetState(@sw_show,$Icon_Select_Screen)
GUISetState(@sw_show,$Icon_Select_Screen_Background)
if GUICtrlRead($Icon_Name_Search) = "" then GUICtrlSetState($Icon_Name_Search,$GUI_FOCUS)
local $CSS_msg
GUICtrlSetState($Icon_Name_Search, $GUI_FOCUS); <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
while 1;$CSS_msg<10
;if WinActive($Icon_Select_Screen_Background) then WinActivate($Icon_Select_Screen)
if GUICtrlRead($Icon_Name_Search) <> "" and GUICtrlRead($Icon_Name_Search) <> "Enter name to search" Then
Clear_Icon_Icons($ReadIcons[0][0])
Icon_Name_Search()
EndIf
$CSS_msg = GUIGetMsg()
if $CSS_msg>8 then
;MsgBox(0,"",guictrlgetstate($Icon_Name_Search))
;MsgBox(0,"",$CSS_msg-8)
$Icon_Selected[0]=$ReadIcons[$CSS_msg-8][0]
$Icon_Selected[1]=$ReadIcons[$CSS_msg-8][1]
MsgBox(0,"",$Icon_Selected[0]&" "&$Icon_Selected[1])
EndIf
switch $CSS_msg
case $Icon_Select_Screen_Minimize
GUISetState(@sw_minimize,$Icon_Select_Screen_Background)
case $Icon_Select_Screen_Close
Exit
case $Icon_Update_Button
Icon_Update()
Case $GUI_EVENT_PRIMARYUP ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
GUICtrlSetState($Icon_Name_Search, $GUI_FOCUS)
EndSwitch
#cs
$aCInfo = GUIGetCursorInfo($Icon_Select_Screen_Background) ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
If $aCInfo[1] < 50 Then
     If $fOver_Main = False Then
         GUICtrlSetState($Icon_Name_Search, $GUI_FOCUS)
         $fOver_Main = True
     EndIf
Else
if $fOver_Main = False then
Else
;if WinActive($Icon_Select_Screen_Background) then
;WinActivate($Icon_Select_Screen)
$fOver_Main = False
; EndIf
EndIf
EndIf ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
#ce
WEnd
Return
EndFunc

I really appreciate you taking your time with me and my problem(s)!

Best regards,

Share this post


Link to post
Share on other sites

zvvyt,

This works as advertised for me - scrolls when the cursor is over the icons, with the input focused: :)

#include <ButtonConstants.au3>
#include <GUIScrollbars_Ex.au3>
#include <winapi.au3>

Global $Icon_Selected[2]; $Icon_Selected[0] = Icon number ; $Icon_Selected[1] = Icon name

$Icon_Select_Screen_Background = GUICreate("zvvyt Build Creator for LoL - Icon Select Screen", 765, 400, -1, -1, $WS_MINIMIZEBOX + $ws_popup)
GUISetBkColor(0xFF0000)
;GUICtrlCreatePic(@WorkingDir & "ImagesLayoutIcon Select.jpg", 0, 0, 765, 450, $BS_FLAT)
$Icon_Update_Button = GUICtrlCreateButton("Check for new Icons", 325, 20, 150, 25)
$Icon_Name_Search = GUICtrlCreateInput("Enter name to search", 500, 20, 125, 25)

$Icon_Select_Screen_Minimize = GUICtrlCreateButton("MINIMIZE", 705, 5, 16, 16)
GUICtrlSetTip(-1, "Click to minimize")
$Icon_Select_Screen_Close = GUICtrlCreateButton("CLOSE", 730, 5, 16, 16)
GUICtrlSetTip(-1, "Click to close")
GUICtrlCreateLabel("", 0, 0, 765, 50, -1, $GUI_WS_EX_PARENTDRAG) ;The invisible bar that allows one to drag and move the Icon select screen-window
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

$Icon_Select_Screen = GUICreate("", 755, 345, 5, 50, $ws_popup, BitOR($WS_EX_MDICHILD, $WS_EX_LAYERED), $Icon_Select_Screen_Background)

;$ReadIcons = IniReadSection("List.ini", "Icons")
Add_Icons()
Icon_Selection()

Func Add_Icons()
    GUISwitch($Icon_Select_Screen)
    GUISetState(@SW_HIDE, $Icon_Select_Screen)
    ;_GUIScrollbars_Scroll_Page($Icon_Select_Screen, 0, 1)
    $Icon_Icon_Startcord_X = 10
    $Icon_Icon_Startcord_Y = 10
    $Row_Count = 0
    $Icon_Icon_Cord_X = $Icon_Icon_Startcord_X
    $Icon_Icon_Cord_Y = $Icon_Icon_Startcord_Y
    For $1 = 1 To 100
        If $Row_Count = 10 Then
            $Icon_Icon_Cord_X = $Icon_Icon_Startcord_X
            $Icon_Icon_Cord_Y = $Icon_Icon_Cord_Y + 74
            $Row_Count = 0
        EndIf
        GUICtrlCreateLabel("", $Icon_Icon_Cord_X, $Icon_Icon_Cord_Y, 64, 64)
        GUICtrlSetBkColor(-1, 0x00FF00)
        $Icon_Icon_Cord_X = $Icon_Icon_Cord_X + 64 + $Icon_Icon_Startcord_X
        $Row_Count = $Row_Count + 1
    Next
    If $Icon_Icon_Cord_Y + 64 > 450 Then
        _GUIScrollbars_Generate($Icon_Select_Screen, "", $Icon_Icon_Cord_Y + 64)
        _GUIScrollBars_ShowScrollBar($Icon_Select_Screen, $SB_VERT, False)
    EndIf

    GUISetBkColor(0xacbdef, $Icon_Select_Screen)
    _WinAPI_SetLayeredWindowAttributes($Icon_Select_Screen, 0xacbdef, 255)

EndFunc   ;==>Add_Icons

Func Icon_Selection()
    GUISetState(@SW_SHOW, $Icon_Select_Screen)
    GUISetState(@SW_SHOW, $Icon_Select_Screen_Background)
    ;If GUICtrlRead($Icon_Name_Search) = "" Then GUICtrlSetState($Icon_Name_Search, $GUI_FOCUS)
    Local $CSS_msg
    GUICtrlSetState($Icon_Name_Search, $GUI_FOCUS)
    While 1;$CSS_msg<10
        ;if WinActive($Icon_Select_Screen_Background) then WinActivate($Icon_Select_Screen)
        If GUICtrlRead($Icon_Name_Search) <> "" And GUICtrlRead($Icon_Name_Search) <> "Enter name to search" Then

            ConsoleWrite("Searching icons" & @CRLF)

            ;Clear_Icon_Icons($ReadIcons[0][0])
            ;Icon_Name_Search()

        EndIf
        $CSS_msg = GUIGetMsg()
        If $CSS_msg > 8 Then
            ;MsgBox(0,"",guictrlgetstate($Icon_Name_Search))
            ;MsgBox(0,"",$CSS_msg-8)
            ;$Icon_Selected[0] = $ReadIcons[$CSS_msg - 8][0]
            ;$Icon_Selected[1] = $ReadIcons[$CSS_msg - 8][1]
            ;MsgBox(0, "", $Icon_Selected[0] & " " & $Icon_Selected[1])
            ConsoleWrite("Icon selected" & @CRLF)
        EndIf
        Switch $CSS_msg
            Case $Icon_Select_Screen_Minimize
                GUISetState(@SW_MINIMIZE, $Icon_Select_Screen_Background)
            Case $Icon_Select_Screen_Close
                Exit
            Case $Icon_Update_Button
                ConsoleWrite("Updating" & @CRLF)
                ;Icon_Update()
            Case $GUI_EVENT_PRIMARYUP
                GUICtrlSetState($Icon_Name_Search, $GUI_FOCUS)
        EndSwitch
    WEnd
EndFunc   ;==>Icon_Selection

M23


Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

This works as advertised for me - scrolls when the cursor is over the icons, with the input focused: :)

This is so frustrating .. Tested your script and it won't work for me =/ Don't know if this is OS-related now or if my computer just refuses to let it work, as I'm running latest version of AutoIt and scite.

On a laptop running Windows 7 x64 if that would make any difference ..

Best regards,

Share this post


Link to post
Share on other sites

zvvyt,

I asked someone to test the script on their Win7 x64 box and it works for them too. So it must be you. :P

M23


Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

I guess then that you don't have a possible solution for this problem I'm now having then? or a workaround of some sort? x)

Compiled the script and sent it to a friend of mine. Didn't work for him either =/

Share this post


Link to post
Share on other sites

zvvyt,

you don't have a possible solution

Alas, no. As it works for me and an MVP on Win7 x64 I cannot really offer any more assistance, sorry. :(

M23

Edit: You could go back to the old script I posted at the beginning. ;)

Edit 2: Another MVP cannot get it to run on several systems - including Win7 x64 - so I am now even more confused. :wacko:

Edited by Melba23
Added second edit

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

Alas, no. As it works for me and an MVP on Win7 x64 I cannot really offer any more assistance, sorry. :(

Baah, alright. I totally understand that :)

Edit: You could go back to the old script I posted at the beginning. ;)

Yea, I guess that's how it look at the moment.

Edit 2: Another MVP cannot get it to run on several systems - including Win7 x64 - so I am now even more confused. :wacko:

Well, this actually makes me a bit "happy" that it's not only I and my machine that's having trouble! :D

Did try to run my computer in safe mode aswell, in case I had another program running which caused this, but it did still behave the same.

IF you come up with something or just "hears" something about this, would you mind posting here again or send me a PM about it? :)

Most thankful for both your time and effort with this case! You guys are doing an excellent job on the forums!

Best regards,

zvvyt

Share this post


Link to post
Share on other sites

First of all: Sorry for doubleposting!

And second: I just got the problem solved myself.

What I did was I created a hidden inputbox by GUICtrlCreateInput which is automatically focused when the child GUI/"scroll gui" is focused. Then I just had it update the visually shown inputbox in the parent window as soon as its content was changed, so it's more or less like a hidden mirror of the shown inputbox!

Just felt like telling in case someone else finds this thread with a problem similar to mine =)

Best regards,

zvvyt

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 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 GNGNUT
      Hi guys
      what i am trying to do is have My Gui LIve update Out of focus, so i can have this on a 2nd monitor streaming live updates while i continue to work on other screen, 
      i have been googling and looking at other threads about focus and stuff , but they do not seem to match what I'm after, 

      to be clear - i am not wanting to put focus on the GUI for it to auto update values, 
       
      if you have any positive feed back on the script while you read - i would be more then happy to accept - as im still building my Knowledge of this coding, 
      and stream line is always better Garbage code writing, 
       
      Kind regards 
      Gngnut
       
      #include <MemoryConstants.au3> #include <MsgBoxConstants.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> Global $currentTime,$currentTimeValue,$v,$Label_Time,$Form1 Global $Label_C2_1,$Label_C2_2,$Label_C2_3,$Label_C2_4,$Label_C2_5,$Label_C2_6,$Label_C2_7 Global $Label_C3_1,$Label_C3_2,$Label_C3_3,$Label_C3_4,$Label_C3_5,$Label_C3_6,$Label_C3_7 ;~ Default Hight for boxs $Hight = 40 $lenght = 180 ;; As per nines comments moved out side of the While loop, AdlibRegister(UpdateTime,250) AdlibRegister(updateValues,500) AdlibRegister(Warning,250) hotkeyset ("{ESC}",Terminate) ;; <<< Used to Quit the programe $aMemStats = MemGetStats() MyGui() ;; running the GUI #Region ### START Koda GUI section ### Form= func MyGui() $ServerName=@ComputerName ; ### Change to your location of image $Image = "C:\Users\gngnut\OneDrive\Pictures\Computer.jpg" ; Creating the form With the Labels $Form1 = GUICreate("My System Status", 800, 750, 225, 173,BitOR($WS_SYSMENU,$WS_MAXIMIZEBOX,$WS_MINIMIZEBOX));$WS_POPUP)) $Pic1 = GUICtrlCreatePic($Image, 0, 0, 800, 750) ;;; #### Column 1 $Label_C1_1 = GUICtrlCreateLabel("Total load currently on RAM:", 71, 192, 180, $Hight, BitOR($SS_CENTER,"")) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C1_2 = GUICtrlCreateLabel("Total physical RAM:", 71, 248, 180, $Hight, BitOR($SS_CENTER,"")) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C1_3 = GUICtrlCreateLabel("Available physical RAM:", 71, 304, 180, $Hight, BitOR($SS_CENTER,"")) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C1_4 = GUICtrlCreateLabel("Total Page Size:", 71, 360, 180, $Hight, BitOR($SS_CENTER,"")) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C1_5 = GUICtrlCreateLabel("Available Page Size:", 71, 416, 180, $Hight, BitOR($SS_CENTER,"")) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C1_6 = GUICtrlCreateLabel("Total virtual Size:", 71, 472, 180, $Hight, BitOR($SS_CENTER,"")) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C1_7 = GUICtrlCreateLabel("Available virtual RAM:", 71, 528, 180, $Hight, BitOR($SS_CENTER,"")) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") ;;; #### Column 2 $Label_C2_1 = GUICtrlCreateLabel($aMemStats[$MEM_LOAD] & " %", 311, 192, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) $colour=0xFEF200 GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C2_2 = GUICtrlCreateLabel($aMemStats[$MEM_TOTALPHYSRAM] & ' Kb' , 311, 248, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C2_3 = GUICtrlCreateLabel($aMemStats[$MEM_AVAILPHYSRAM] & ' Kb', 311, 304, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C2_4 = GUICtrlCreateLabel($aMemStats[$MEM_TOTALPAGEFILE] & ' Kb', 311, 360, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C2_5 = GUICtrlCreateLabel($aMemStats[$MEM_AVAILPAGEFILE] & ' Kb', 311, 416, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C2_6 = GUICtrlCreateLabel($aMemStats[$MEM_TOTALVIRTUAL] & ' Kb' , 311, 472, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C2_7 = GUICtrlCreateLabel($aMemStats[$MEM_AVAILVIRTUAL] & ' Kb', 311, 528, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") ;;; #### Column 3 $Label_C3_2 = GUICtrlCreateLabel(Round($aMemStats[$MEM_TOTALPHYSRAM]/1024/1024, 2) & ' Gb', 551, 248, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C3_3 = GUICtrlCreateLabel(Round($aMemStats[$MEM_AVAILPHYSRAM]/1024/1024, 2) & ' Gb', 551, 304, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C3_4 = GUICtrlCreateLabel(Round($aMemStats[$MEM_TOTALPAGEFILE]/1024/1024, 2) & ' Gb', 551, 360, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C3_5 = GUICtrlCreateLabel(Round($aMemStats[$MEM_AVAILPAGEFILE]/1024/1024, 2) & ' Gb', 551, 416, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C3_6 = GUICtrlCreateLabel(Round($aMemStats[$MEM_TOTALVIRTUAL]/1024/1024, 2) & ' Gb', 551, 472, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_C3_7 = GUICtrlCreateLabel(Round($aMemStats[$MEM_AVAILVIRTUAL]/1024/1024, 2) & ' Gb', 551, 528, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_Server = GUICtrlCreateLabel($ServerName, 551, 600, 180, $Hight, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") $Label_Time = GUICtrlCreateLabel($currentTime , 71, 600, 180, $Hight, bitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xFEF200) GUICtrlSetFont(-1, 12, 400, 0, "Lucida Console") GUISetState(@SW_SHOWNORMAL) #EndRegion ### END Koda GUI section ### EndFunc While 1 Sleep(1000) ; sets a delay of 1 sec per 1000 WEnd ;; close down the Application func Terminate() exit EndFunc ;; Updating Time func UpdateTime() $currentTime = @HOUR&":"& @MIN &":"& @SEC ControlSetText($Form1,"",$Label_Time, $currentTime) EndFunc ;; currently changing the CPU % lable Func Warning() if $aMemStats[$MEM_LOAD] <=40 Then ; Green GUICtrlSetbkColor($Label_C2_1,0x2BFC0B) ElseIf $aMemStats[$MEM_LOAD] >40 and $aMemStats[$MEM_LOAD] <= 80 Then GUICtrlSetbkColor($Label_C2_1,0xFDBE01) Elseif $aMemStats[$MEM_LOAD] > 80 Then GUICtrlSetBkColor($Label_C2_1, 0xEE0C0C) EndIf EndFunc ;; Updating The Lable values of column 2 Only if the values change func updateValues() $aMemStats = MemGetStats() if GUICtrlRead($Label_C2_1) <> $aMemStats[$MEM_LOAD] Then ControlSetText($Form1,"",$Label_C2_1,$aMemStats[$MEM_LOAD]) endif If GUICtrlRead($Label_C2_2) <> $aMemStats[$MEM_TOTALPHYSRAM] & ' Kb' then ControlSetText($Form1,"",$Label_C2_2,$aMemStats[$MEM_TOTALPHYSRAM] & ' Kb') endif If GUICtrlRead($Label_C2_3) <> $aMemStats[$MEM_AVAILPHYSRAM] & ' Kb' then ControlSetText($Form1,"",$Label_C2_3,$aMemStats[$MEM_AVAILPHYSRAM] & ' Kb') endif If GUICtrlRead($Label_C2_4) <> $aMemStats[$MEM_TOTALPAGEFILE] & ' Kb' then ControlSetText($Form1,"",$Label_C2_4,$aMemStats[$MEM_TOTALPAGEFILE] & ' Kb') endif If GUICtrlRead($Label_C2_5) <> $aMemStats[$MEM_AVAILPAGEFILE] & ' Kb' then ControlSetText($Form1,"",$Label_C2_5,$aMemStats[$MEM_AVAILPAGEFILE] & ' Kb') endif If GUICtrlRead($Label_C2_6) <> $aMemStats[$MEM_TOTALVIRTUAL] & ' Kb' then ControlSetText($Form1,"",$Label_C2_6,$aMemStats[$MEM_TOTALVIRTUAL] & ' Kb') endif If GUICtrlRead($Label_C2_7) <> $aMemStats[$MEM_AVAILVIRTUAL] & ' Kb' then ControlSetText($Form1,"",$Label_C2_7,$aMemStats[$MEM_AVAILVIRTUAL] & ' Kb') endif EndFunc  
    • By nacerbaaziz
      hello sirs, i've created a tool to the blind users, this tool helps the blind to listen to a audio effect when moving between the GUIs controls on they computers
      where this tool can get the class for the current focus control and play a sound from a folder
      i've added all the knowne classes, but i found some problems i hope any one can help me.
      this is the code that i created

      #include <WinAPISys.au3> Global $h_CurrentHWNDFocus = "", $h_CurrentControlHWNDFocus = "" AdlibRegister("WindowAudioFocus", 50) Func WindowAudioFocus()     Local $h_NewHWNDFocus = WinGetHandle("[active]", "")     Local $h_NewControlHWNDFocus = ControlGetFocus($h_NewHWNDFocus, "")     If ($h_NewHWNDFocus = $h_CurrentHWNDFocus) And ($h_NewControlHWNDFocus = $h_CurrentControlHWNDFocus) Then Return 0     AdlibUnRegister("WindowAudioFocus")     If Not ($h_NewHWNDFocus = $h_CurrentHWNDFocus) Then         SoundPlay(@ScriptDir & "\focus_Audio\WindowChanged.wav")     Else         Switch _WinAPI_GetClassName(ControlGetHandle($h_NewHWNDFocus, "", $h_NewControlHWNDFocus))             Case "Button", "Start", "TrayButton", "TrayShowDesktopButtonWClass", "sbutton", "CirrussButton", "ODbcButton", "ThunderRTCommandButton", "ThunderSSOption", "ThunderSSCommand", "ThunderCommandButton", "ThunderRT6CommandButton", "ThunderRT5CommandButton", "TButton", "TBitBtn", "TAdvGlowButton", "ButtonWndClass", "afx:0:376:baa946", "_AOL_Button"                 If _IsCheckBox(ControlGetHandle($h_NewHWNDFocus, "", $h_NewControlHWNDFocus)) Then                     SoundPlay(@ScriptDir & "\focus_Audio\checkBox.wav")                 ElseIf _IsRadio(ControlGetHandle($h_NewHWNDFocus, "", $h_NewControlHWNDFocus)) Then                     SoundPlay(@ScriptDir & "\focus_Audio\radio.wav")                 Else                     SoundPlay(@ScriptDir & "\focus_Audio\button.wav")                 EndIf             Case "ComboBox", "ComboBoxEx32", "MSOBALLOONREComboBox20W", "REComboBox20W", "ThunderComboBox", "ThunderDriveListBox", "ThunderRT6ComboBox", "TORComboEdit", "TCombobox", "TComboBoxEx", "TORComboBox", "TColorBox", "TNFComboBox", "Internet Explorer_TridentCmbobx", "ComboWndClass", "_AOL_ComboBox", "ThunderRT5ComboBox", "ComboLBox"                 SoundPlay(@ScriptDir & "\focus_Audio\list.wav")             Case "Edit", "SearchBox", "TChatRichEdit", "_WwN", "_WwO", "RichEdit20A", "RichEdit20WPT", "RICHEDIT60W", "OKttbx", "RichEditA", "ThunderTextBox", "ThunderRT6TextBox", "ThunderRT5TextBox", "TEdit", "TRichEdit", "TRichEditViewer", "TMemo", "TInplaceEditList", "TLabeledEdit", "TMaskEdit", "TDateTimePicker", "TRichEdit", "TCaptionMemo", "TAddictRichEdit", "TCaptionEdit", "RichTextWndClass", "TextWndClass", "PasswordWndClass", "TextAreaWndClass", "MSWorksDoc", "_AOL_Edit", "SysDateTimePick32"                 SoundPlay(@ScriptDir & "\focus_Audio\edit.wav")             Case "ListBox", "ComboLBox", "REListBox20W", "SUPERGRID", "OUTEXVLB", "WMSUIVLB", "SchdmapiVLB", "VLBClass", "ThunderDirListBox", "ThunderFileListBox", "ThunderListBox", "ThunderRT6ListBox", "ThunderRT5ListBox", "TListbox", "TValueListEditor", "TORCalendar", "TColorListBox", "TCheckListBox", "Internet Explorer_TridentLstBox", "ListBoxWndClass", "ListWndClass", "hh_kwd_vlist", "afx:8:376:0:946", "_AOL_ListBox", "_AOL_Tree", ""                 SoundPlay(@ScriptDir & "\focus_Audio\List.wav")             Case "SysListView32", "OpenListView", "wuDuiListView", "ListView20WndClass", "TcxGridSite", "TListView", "TSystemListView", "ListViewWndClass", ""                 SoundPlay(@ScriptDir & "\focus_Audio\ListView.wav")             Case "SysTreeView32", "SearchTreeList", "FeatureTree", "TreeView20WndClass", "TSystemTreeView", "TTreeView", ""                 SoundPlay(@ScriptDir & "\focus_Audio\TreeView.wav")             Case Else                 SoundPlay(@ScriptDir & "\focus_Audio\focus.wav")         EndSwitch     EndIf     $h_CurrentHWNDFocus = $h_NewHWNDFocus     $h_CurrentControlHWNDFocus = $h_NewControlHWNDFocus     AdlibRegister("WindowAudioFocus", 50)     Return 1 EndFunc   ;==>WindowAudioFocus Func _IsCheckBox($ctrl_hwnd)     $Style = _WinAPI_GetWindowLong($ctrl_hwnd, $GWL_STYLE)     Return BitAND($Style, $BS_CHECKBOX) = $BS_CHECKBOX EndFunc   ;==>_IsCheckBox Func _IsRadio($ctrl_hwnd)     $Style = _WinAPI_GetWindowLong($ctrl_hwnd, $GWL_STYLE)     Return BitAND($Style, $BS_AUTORADIOBUTTON) = $BS_AUTORADIOBUTTON EndFunc   ;==>_IsRadio
      what i need from you is :
      play a sound when a menu item focus, that sound named menu.wav
      play a sound named items.wav when the users move on list box items or list view or treeview items or a combobox items
      please if can any one help me i'll very happy
      thanks on advance
    • 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...