Jump to content
Sign in to follow this  

Checking a control to see what it is?

Recommended Posts


Is there a way to check to see what a control is? I'v got an array with controls and I want to see wich ones are labels.


Share this post

Link to post
Share on other sites

Yep :lmao: However, determining if a button is a normal button or radio button or checkbox is a bit tricker.... see code at end of my post.

#include <GuiConstants.au3>

$GUI = GuiCreate("Example")
$one = GUICtrlCreateButton("This one is a button", 10, 10)
$two = GuiCtrlCreateLabel("This two is a label", 100, 100)
$three = GuiCtrlCreateEdit("three = input box", 200, 200, 100, 100)

MsgBox(4096, "one", _GetClassName($GUI,$one))
MsgBox(4096, "two", _GetClassName($GUI,$two))
MsgBox(4096, "three", _GetClassName($GUI,$three))


Func _GetClassName($title, $GuiCtrlRef)
    Local $lpstr;required for DllCall(...GetClassName..) I think
    Local $handle = ControlGetHandle($title, "", $GuiCtrlRef)
    Local $class = DllCall("user32.dll", "int", "GetClassName", "hWnd", $handle, "str", $lpstr, "int", 255)
    Return $class[2]

Func _GetStyle($title, $GuiCtrlRef)
    $foo = ControlGetHandle($title, "", $GuiCtrlRef)
    $style = DllCall("user32.dll","Long","GetWindowLong","hWnd",$foo,"int",-16)
    Return $style[0]

Here's the code for determining if a "button" is a pushbutton or checkbox or radio or frame. A simple BitAND will not work because the styles are not simply powers of two....


$type = BitAND($s, 0xF) ;look at last four bits...

If $type = 2 or $type = 3 or $type = 5 or $type = 6 Then

; checkbox...

ElseIf $type = 4 or $type = 9 Then

; radio...

ElseIf $type = 7 Then

; group ...


; normal button ...


Use Mozilla | Take a look at My Disorganized AutoIt stuff | Very very old: AutoBuilder 11 Jan 2005 prototype I need to update my sig!

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  


Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.