Holas,
hay alguna manera de mover un dialogo con el mouse sin que tenga título, pinchando en cualquier lugar y moviendolo
saludos
Marcelo
DEFINE DIALOG oDLg ....
DEFINE CURSOR oCur ...
...
...
oDlD:bLClicked := { || MovWin(oDlGD,aCoors,oCur) }
...
ACTIVATE DIALOG oDlg...
FUNCTION MovWin(oDW,aCoor,oCur)
LOCAL aXY := GetCursorPos()
LOCAL aPun := GetWndRect(oDW:hWnd)
aXY[1] -= aPun[1]
aXY[2] -= aPun[2]
IF aXY[1] > aCoor[nTop] .AND. aXY[1] < aCoors[nBottom] .AND. aXY[2] > aCoors[nLeft] .AND. aXY[2] < aCoors[nRight]
DO WHILE GetKeyState( VK_LBUTTON )
SetCursor( oCur:hCursor )
aPun := GetCursorPos()
MoveWindow( oDW:hWnd, aPun[1]-aXY[1], aPun[2]-aXY[2],,, .T. )
SysRefresh()
ENDDO
CursorArrow()
ENDIF
RETURN .T.
DEFINE DIALOG oDLg ....
DEFINE CURSOR oCur ...
...
...
oDlD:bLClicked := { || MovWin(oDlGD,oCur) }
...
ACTIVATE DIALOG oDlg...
FUNCTION MovWin(oDW,oCur)
LOCAL aXY := GetCursorPos()
LOCAL aPun := GetWndRect(oDW:hWnd)
aXY[1] -= aPun[1]
aXY[2] -= aPun[2]
DO WHILE GetKeyState( VK_LBUTTON )
SetCursor( oCur:hCursor )
aPun := GetCursorPos()
MoveWindow( oDW:hWnd, aPun[1]-aXY[1], aPun[2]-aXY[2],,, .T. )
SysRefresh()
ENDDO
CursorArrow()
RETURN .T.
acuellar wrote:Muchas Gracias Antolin
A mi también me sirvió.
Saludos,
Adhemar
DEFINE WINDOW oWndK MDICHILD FROM 0,0 to 2,2 OF oWnd BORDER NONE NOSYSMENU NOCAPTION TITLE cTitle ICON "SVITE"
DEFINE DIALOG oDlg RESOURCE "KARDEX" OF oWndK
oDlg:bLClicked := { || MovWin(oDlg, oCursor) } // para mover el objeto
aEval(oDlg:aControls,{|oC|iif(oC:ClassName()="TBTNBMP",oC:oCursor:=oCursor,)})
ACTIVATE DIALOG oDlg CENTER NOWAIT ;
ON INIT (oDlg:Move( 0, 0 ), ;
VALID (oWndK:End() , lSalir )
oWndK:bGotFocus = { || oDlg:SetFocus() }
ACTIVATE WINDOW oWndK ;
ON INIT (oWndK:Move(0,0), oWndK:SetSize( oDlg:nWidth, oDlg:nHeight ) ) ;
ON RESIZE (oWndK:SetSize( oDlg:nWidth, oDlg:nHeight ) ) ;
VALID (lSalir)
oDlg:bLClicked := { || MovWin(oChild, oCursor) } //enviandole ventana hija MDI
#define SM_CYCAPTION 4
#define SM_CYFRAME 33
#define SM_CXPADDEDBORDER 92
//--------------------------//
FUNCTION MovWin(oDW,oCur)
LOCAL aXY := GetCursorPos()
LOCAL aPun := GetWndRect(oDW:hWnd)
local nHeight
IF oDW:CLASSNAME() == "TMDICHILD"
nHeight := ( GetSysMetrics(SM_CYFRAME) + ;
GetSysMetrics(SM_CYCAPTION) + ;
GetSysMetrics(SM_CXPADDEDBORDER) ) * 2.3666
aXY[1] -= (aPun[1]-nHeight)
aXY[2] -= aPun[2]+1
ELSE
aXY[1] -= aPun[1]
aXY[2] -= aPun[2]
ENDIF
DO WHILE GetKeyState( VK_LBUTTON )
SetCursor( oCur:hCursor )
aPun := GetCursorPos()
MoveWindow( oDW:hWnd, aPun[1]-aXY[1], aPun[2]-aXY[2],,, .T. )
SysRefresh()
ENDDO
CursorArrow()
RETURN .T.
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: Google [Bot] and 39 guests