| |
|
|
- Page 1 - |
|
Michael Hettner | Hi, how can I The position and the dimensions one Buttons in the Mainwindow detect? |
|
|
| |
|
|
|
« this Posting watts as Solution marked. » |
|
Thomas Freier | I use mostly:
$H windows.ph
$H messages.ph
STRUCT RECT = Left&,Righ&,Top&,Bottom&
Declare appexit%
Window Style $003F
Window Title "anklicken and move "
Window 207,114 - 771,611
Cls ~GetSysColor(15)
UseFont "MS Sans Serif",13,0,0,0,0
SetDialogFont 1
Var Text& = Create("Text",%hwnd,"veschieb mich",10,10,100,24)
Var Group& = Create("Group box",%hwnd,"veschieb mich",240,240,300,300)
Var Button& = Create("Button",%hwnd,"veschieb mich",140,10,100,24)
Var R# = New(RECT)
WhileNot appexit%
WaitInput
~EnumChildWindows(%hwnd,ProcAddr("MoveIt",2),MakeLong(%mousex,%mousey))
If %key = 2
Dispose hdr#
Dispose R#
appexit%=1
Endif
EndWhile
Proc MoveIt
Parameters wnd&,lParam&
~GetClientRect(wnd&,R#)
~MapWindowPoints(wnd&,%hwnd,R#,2)
If ~PtInRect(R#,LoWord(lParam&),HiWord(lParam&))
~Capture Release()
UseCursor 5
SendMessage(wnd&,~WM_SYSCOMMAND,~SC_MOVE+1,0)
UseCursor 0
Return 0
endif
Return 1
ENDPROC
|
|
|
| Gruß Thomas Windows XP SP2, XProfan X2 | 08/28/21 ▲ |
|
|
|
|
|
p.specht
| want You whom Button platzieren? with mouse left upper corner start and by %mousex, %mousey read. Gleiches with it rechten downstairs corner, the gives then minus the before ausgelesenen values The Size.
with Buttons in strangers Programmtexten müsstes You the lever know, then would it presumably plainer. In suit Programs do you know Yes The values, The You at Create uses have already ... |
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 08/27/21 ▲ |
|
|
|
|
Michael Hettner | The Buttons can in my Program spare moved go. The positions should then in a INI-File written go, so the at next Programmaufruf the Buttons again on the equal stain find. |
|
|
| |
|
|
|
RudiB. | probiers time with setWindowPos lever,%mousex,%mousey |
|
|
| |
|
|
|
RudiB. | Have what found... [...]
still into Whilenot ende& Loop to the Waitinput
|
|
|
| |
|
|
|
H.Brill | The dimensions weg Yes simply :
Declare lever btn1, btn2, btn3, Long end
Window 600, 400
btn1 = Create("Button", %HWnd, "Button1", 10, 10, 80, 25)
btn2 = Create("Button", %HWnd, "Button2", 10, 50, 70, 25)
btn3 = Create("Button", %HWnd, "Ende", 10, 90, 50, 25)
end = 0
Whilenot end
WaitInput
If Clicked(btn1)
MessageBox("Breite Btn1 : " + Str $(Width(btn1, 1)) + "\nHöhe Btn1 : " + Str $(Height(btn1, 1)), "Info", 0)
ElseIf Clicked(btn2)
MessageBox("Breite Btn2 : " + Str $(Width(btn2, 1)) + "\nHöhe Btn2 : " + Str $(Height(btn2, 1)), "Info", 0)
ElseIf Clicked(btn3)
MessageBox("Breite Btn3 : " + Str $(Width(btn3, 1)) + "\nHöhe Btn3 : " + Str $(Height(btn3, 1)), "Info", 0)
end = 1
EndIf
EndWhile
End
And so The relativen Coordinates :
Declare lever btn1, btn2, btn3, Long end, rect#
Def GetWindowRect(2) !"USER32", "GetWindowRect"
Struct Brect = left&, top&, right&, bottom&
Dim Rect#, Brect
Window 600, 400
btn1 = Create("Button", %HWnd, "Button1", 10, 10, 80, 25)
btn2 = Create("Button", %HWnd, "Button2", 10, 50, 70, 25)
btn3 = Create("Button", %HWnd, "Ende", 10, 90, 50, 25)
end = 0
Whilenot end
WaitInput
If Clicked(btn1)
GetWindowRect(btn1, Rect#)
MessageBox("X1 : " + Str $(Rect#.left&) + "\nY1 : " + Str $(Rect#.top&) + "\nX2 : " + Str $(Rect#.right&) + "\nY2 : " + Str $(Rect#.bottom&), "Info", 0)
ElseIf Clicked(btn2)
GetWindowRect(btn2, Rect#)
MessageBox("X1 : " + Str $(Rect#.left&) + "\nY1 : " + Str $(Rect#.top&) + "\nX2 : " + Str $(Rect#.right&) + "\nY2 : " + Str $(Rect#.bottom&), "Info", 0)
ElseIf Clicked(btn3)
GetWindowRect(btn3, Rect#)
MessageBox("X1 : " + Str $(Rect#.left&) + "\nY1 : " + Str $(Rect#.top&) + "\nX2 : " + Str $(Rect#.right&) + "\nY2 : " + Str $(Rect#.bottom&), "Info", 0)
end = 1
EndIf
EndWhile
Dispose Rect#
End
ought to one then only because of the Window converting, or. this respect. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 08/28/21 ▲ |
|
|
|
|
Michael Hettner | thanks, the functions. ;) |
|
|
| |
|
|
|
p.specht
| I would very on the Programmteil interested, with the Buttons moved go can. on the principle at least. me falls only Delete and new Create on Mausposition one (in XProfan-11.2a free) ... |
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 08/28/21 ▲ |
|
|
|
|
Thomas Freier | I use mostly:
$H windows.ph
$H messages.ph
STRUCT RECT = Left&,Righ&,Top&,Bottom&
Declare appexit%
Window Style $003F
Window Title "anklicken and move "
Window 207,114 - 771,611
Cls ~GetSysColor(15)
UseFont "MS Sans Serif",13,0,0,0,0
SetDialogFont 1
Var Text& = Create("Text",%hwnd,"veschieb mich",10,10,100,24)
Var Group& = Create("Group box",%hwnd,"veschieb mich",240,240,300,300)
Var Button& = Create("Button",%hwnd,"veschieb mich",140,10,100,24)
Var R# = New(RECT)
WhileNot appexit%
WaitInput
~EnumChildWindows(%hwnd,ProcAddr("MoveIt",2),MakeLong(%mousex,%mousey))
If %key = 2
Dispose hdr#
Dispose R#
appexit%=1
Endif
EndWhile
Proc MoveIt
Parameters wnd&,lParam&
~GetClientRect(wnd&,R#)
~MapWindowPoints(wnd&,%hwnd,R#,2)
If ~PtInRect(R#,LoWord(lParam&),HiWord(lParam&))
~Capture Release()
UseCursor 5
SendMessage(wnd&,~WM_SYSCOMMAND,~SC_MOVE+1,0)
UseCursor 0
Return 0
endif
Return 1
ENDPROC
|
|
|
| Gruß Thomas Windows XP SP2, XProfan X2 | 08/28/21 ▲ |
|
|
|
|
p.specht
| fully krass extrageil! thousand Thanks, Thomas! |
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 08/28/21 ▲ |
|
|
|