Sign in to follow this  
Followers 0
Terenz

Help with _WinAPI_Draw

1 post in this topic

#1 ·  Posted (edited)

Hi all

I want to draw 2 line and 2 text on the desktop, and move the position based on the value of the input

This is what i have done:

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

Local $hDC, $hPen, $obj_orig

$Form1_1 = GUICreate("Form1", 201, 126, -1, -1)
$Input1 = GUICtrlCreateInput("20", 16, 24, 121, 21)
$Input2 = GUICtrlCreateInput("20", 16, 64, 121, 21)
$Button1 = GUICtrlCreateButton("1", 144, 24, 43, 25)
$Button2 = GUICtrlCreateButton("2", 146, 65, 43, 25)
GUISetState(@SW_SHOW)

$tRECT_X = DllStructCreate($tagRect)
DllStructSetData($tRECT_X, "Left", @DesktopWidth / 2)
DllStructSetData($tRECT_X, "Top", 25)
DllStructSetData($tRECT_X, "Right", 55)
DllStructSetData($tRECT_X, "Bottom", 40)

$tRECT_Y = DllStructCreate($tagRect)
DllStructSetData($tRECT_Y, "Left", 20)
DllStructSetData($tRECT_Y, "Top", @DesktopHeight / 4)
DllStructSetData($tRECT_Y, "Right", 55)
DllStructSetData($tRECT_Y, "Bottom", @DesktopHeight / 3)

$hDC = _WinAPI_GetWindowDC(0) ; DC of entire screen (desktop)
$hPen = _WinAPI_CreatePen($PS_SOLID, 3, 0x0000FF)
$obj_orig = _WinAPI_SelectObject($hDC, $hPen)

_WinAPI_DrawLine($hDC, 20, 20, 20, @DesktopHeight / 3)
_WinAPI_DrawLine($hDC, 20, 20, @DesktopWidth / 3, 20)
_WinAPI_SetBkMode($hDC, $TRANSPARENT)
_WinAPI_SetTextColor($hDC, 0x0000FF)
_WinAPI_DrawText($hDC, "X", $tRECT_X, $DT_CENTER)
_WinAPI_DrawText($hDC, "Y", $tRECT_Y, $DT_CENTER)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            ; refresh desktop
            _WinAPI_RedrawWindow(_WinAPI_GetDesktopWindow(), 0, 0, $RDW_INVALIDATE + $RDW_ALLCHILDREN)
            ; clear resources
            _WinAPI_SelectObject($hDC, $obj_orig)
            _WinAPI_DeleteObject($hPen)
            _WinAPI_ReleaseDC(0, $hDC)
            Exit
        Case $Button1
    EndSwitch
WEnd

My problem is are i don't know how to move the lines and text based the position of the desktop size

Example:

If input1 is 50 the vertical line goes to 50px from the left, and move the also text

If input2 is 50 the horizontal line goes to 50px from the top, and move the also text

And make everything based on desktop size, now i don't think my "math" is correct

Thanks for any help

Edited by Terenz

Nothing is so strong as gentleness. Nothing is so gentle as real strength

 

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