Mover un Dialogo sin Caption
-
- Posts: 1079
- Joined: Fri Oct 07, 2005 3:33 pm
- Location: Cochabamba - Bolivia
- Has thanked: 1 time
- Been thanked: 1 time
Mover un Dialogo sin Caption
Holas,
hay alguna manera de mover un dialogo con el mouse sin que tenga título, pinchando en cualquier lugar y moviendolo
saludos
Marcelo
hay alguna manera de mover un dialogo con el mouse sin que tenga título, pinchando en cualquier lugar y moviendolo
saludos
Marcelo
- Antonio Linares
- Site Admin
- Posts: 42655
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 67 times
- Been thanked: 96 times
- Contact:
-
- Posts: 1079
- Joined: Fri Oct 07, 2005 3:33 pm
- Location: Cochabamba - Bolivia
- Has thanked: 1 time
- Been thanked: 1 time
Re: Mover un Dialogo sin Caption
Antonio,
muchas gracias, lo estoy probando con diálogos definidos en recursos, y el funcionamiento es errático, es necesario jugar un poco m'as, pero es buen inicio, gracias
saludos
Marcelo
muchas gracias, lo estoy probando con diálogos definidos en recursos, y el funcionamiento es errático, es necesario jugar un poco m'as, pero es buen inicio, gracias
saludos
Marcelo
Re: Mover un Dialogo sin Caption
Marcelo, yo lo hago así:
OcUR es por si quiero utilizar un cursor diferente cuando se mueve el dialogo. No es necesario ponerlo
aCoors es el área en la que quiero que el ratón mueva el dialogo. Si quiero que mover el dialogo desde cualquier parte, no la pongo, y sería:
A mi me funciona bien
Espero te sea de utilidad.
Un saludo.
Code: Select all | Expand
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() ENDIFRETURN .T.
OcUR es por si quiero utilizar un cursor diferente cuando se mueve el dialogo. No es necesario ponerlo
aCoors es el área en la que quiero que el ratón mueva el dialogo. Si quiero que mover el dialogo desde cualquier parte, no la pongo, y sería:
Code: Select all | Expand
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.
A mi me funciona bien
Espero te sea de utilidad.
Un saludo.
Peaaaaaso de foro...
FWH 2007 - xHarbour - BCC55
FWH 2007 - xHarbour - BCC55
-
- Posts: 1079
- Joined: Fri Oct 07, 2005 3:33 pm
- Location: Cochabamba - Bolivia
- Has thanked: 1 time
- Been thanked: 1 time
Re: Mover un Dialogo sin Caption
Muchas Gracias Antolin
A mi también me sirvió.
Saludos,
Adhemar
A mi también me sirvió.
Saludos,
Adhemar
Saludos,
Adhemar C.
Adhemar C.
- FranciscoA
- Posts: 2164
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: Mover un Dialogo sin Caption
acuellar wrote:Muchas Gracias Antolin
A mi también me sirvió.
Saludos,
Adhemar
+1
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
- Willi Quintana
- Posts: 1025
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact:
Re: Mover un Dialogo sin Caption
Hola Amigos,
Cuando muevo un dialogo incrustado en una windows (MDI) solo se mueve el dialogo mas no la window, y al cambiar oDlg por oWndK se mueve todo pero la window salta hacia abajo....
Cuando muevo un dialogo incrustado en una windows (MDI) solo se mueve el dialogo mas no la window, y al cambiar oDlg por oWndK se mueve todo pero la window salta hacia abajo....
Code: Select all | Expand
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 objetoaEval(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)
- FranciscoA
- Posts: 2164
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: Mover un Dialogo sin Caption
Hola Willi.
Modificando la function de Antolin, de la siguiente manera, me funciona bien en Windows 7. En este momento no tengo a la mano otras versiones de Windows.
Pruebalo y nos dices.
Saludos.
Modificando la function de Antolin, de la siguiente manera, me funciona bien en Windows 7. En este momento no tengo a la mano otras versiones de Windows.
Pruebalo y nos dices.
Code: Select all | Expand
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 nHeightIF oDW:CLASSNAME() == "TMDICHILD" nHeight := ( GetSysMetrics(SM_CYFRAME) + ; GetSysMetrics(SM_CYCAPTION) + ; GetSysMetrics(SM_CXPADDEDBORDER) ) * 2.3666 aXY[1] -= (aPun[1]-nHeight) aXY[2] -= aPun[2]+1ELSE 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.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
- Willi Quintana
- Posts: 1025
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact: