Jump to content

Recommended Posts

Posted (edited)

I was curious, I'm fiddling around with creating windows controls using the title function and I'd like to know how I can set its cursor.

There seems to be nothing here relating to doing this... That is, setting the cursor for a static control (pic) created with createwindowex.

Edited by ApudAngelorum
Posted

Are you talking about the mouse cursor? If it's for the whole GUI use GUISetCursor, if for a specific control use GUICtrlSetCursor.

If you're not talking about the mouse cursor, please explain what it is you do mean.

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

Posted

It's set in the WNDCLASSEX struct when a custom class is registered

(there is an example in WinAPIEx for a custom class gui: _WinAPI_RegisterClassEx.au3)

GUISetCursor/GUICtrlSetCursor change an existing control class with SetClassLongEx

GUICtrlCreateLabel("", 10, 30, 70, 30, $SS_GRAYFRAME)
$hCursor = _WinAPI_LoadCursor(0, $IDC_HAND) ;system cursors do not have to be deleted - no memory leak
_WinAPI_SetClassLongEx(GUICtrlGetHandle(-1), $GCL_HCURSOR, $hCursor);original system cursor (returned by SetClassLongEx) does not have to be deleted. (no memory leak)
;_WinAPI_DestroyCursor($hCursor)

I see fascists...

Posted

Are you talking about the mouse cursor? If it's for the whole GUI use GUISetCursor, if for a specific control use GUICtrlSetCursor.

If you're not talking about the mouse cursor, please explain what it is you do mean.

Situation.. : Creating windows control class "Static" using _WinAPI_CreateWindowEx()

Problem.... : Assigning Cursor icon for hover action

That's basically it.

Global $hDragBar = _WinApi_CreateWindowEx(0, "Static", "Drag Control", BitOR($WS_VISIBLE, $WS_CHILD, $SS_NOTIFY, $SS_BITMAP), 0, $UI_HEIGHT - $statusBarHeight - 27, $UI_WIDTH, $UI_HEIGHT, $Editor_UI)
_WinAPI_SetWindowPos($hDragBar, $HWND_TOP, 0, $UI_HEIGHT - $statusBarHeight - 27, $UI_WIDTH, $UI_HEIGHT, $SWP_SHOWWINDOW)

That's basically why i'm doing it, it seems to stay higher in the z order and I noticed that in my script, it is easier to control painting when $WS_CLIPCHILDREN is used.

I could be wrong though, and using the normal GuiCreatePic() function and setting its state to $GUI_ONTOP has the same effect, but the one created using the createwindowex seems to help with managing painting issues.

Posted

It's set in the WNDCLASSEX struct when a custom class is registered

(there is an example in WinAPIEx for a custom class gui: _WinAPI_RegisterClassEx.au3)

GUISetCursor/GUICtrlSetCursor change an existing control class with SetClassLongEx

GUICtrlCreateLabel("", 10, 30, 70, 30, $SS_GRAYFRAME)
$hCursor = _WinAPI_LoadCursor(0, $IDC_HAND) ;system cursors do not have to be deleted - no memory leak
_WinAPI_SetClassLongEx(GUICtrlGetHandle(-1), $GCL_HCURSOR, $hCursor);original system cursor (returned by SetClassLongEx) does not have to be deleted. (no memory leak)
;_WinAPI_DestroyCursor($hCursor)

This solves my problem completely.

And as for the reason I was doing this, it is confirmed, creating the pic control in this manner seems to solve a problem with $WS_CLIPCHILDREN style.

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...