I am suffering from porting side defects of my application from diferrent resolutions . I need the optimim (best) to avoid modifying my screen size for each resolution I face.
What make my application compatible with all sizes and sreen resolutions
Thanks
regardless screen resolution
-
- Posts: 454
- Joined: Sun Oct 30, 2005 6:37 am
- Location: Guangzhou(Canton),China
Ehab,
This is my simple modify sample:
dialog.prg
METHOD Autoresize(ntop,nleft)
local i,rsl0,rsl1,oCtrol,aRect
DEFAULT ntop:=0
DEFAULT nleft:=0
rsl0:=getsysmetrics(0)/800
if rsl0<=1; return ; end //<=800*600, not needed
rsl1:=getsysmetrics(1)/600
for i:=1 TO LEN(::acontrols)
oCtrol = ::aControls
aRect = GetCoors( oCtrol:hWnd )
do case
case oCtrol:classname()=="TCOMBOBOX"
oCtrol:Move( aRect[1]*rsl0, aRect[2]*rsl1)
// case oCtrol:classname()=="TGET"
// oCtrol:Move( aRect[1]*rsl0, aRect[2]*rsl1,,(aRect[3] - aRect[1])*rsl0, .t. )
otherwise
oCtrol:Move( aRect[1]*rsl0, aRect[2]*rsl1, (aRect[4] - aRect[2])*rsl1, (aRect[3] - aRect[1])*rsl0, .t. )
// ntop,nleft,nbottom,nright
end case
next
aRect = GetWndRect( ::hWnd )
::Move( ntop,nleft,::nWidth*rsl0, ::nHeight*rsl1, .T. )
if ::lCentered
WndCenter( ::hWnd )
else
if Empty( ::cResName )
::Move( ::nTop, ::nLeft )
endif
endif
return
Shuming Wang
This is my simple modify sample:
dialog.prg
METHOD Autoresize(ntop,nleft)
local i,rsl0,rsl1,oCtrol,aRect
DEFAULT ntop:=0
DEFAULT nleft:=0
rsl0:=getsysmetrics(0)/800
if rsl0<=1; return ; end //<=800*600, not needed
rsl1:=getsysmetrics(1)/600
for i:=1 TO LEN(::acontrols)
oCtrol = ::aControls
aRect = GetCoors( oCtrol:hWnd )
do case
case oCtrol:classname()=="TCOMBOBOX"
oCtrol:Move( aRect[1]*rsl0, aRect[2]*rsl1)
// case oCtrol:classname()=="TGET"
// oCtrol:Move( aRect[1]*rsl0, aRect[2]*rsl1,,(aRect[3] - aRect[1])*rsl0, .t. )
otherwise
oCtrol:Move( aRect[1]*rsl0, aRect[2]*rsl1, (aRect[4] - aRect[2])*rsl1, (aRect[3] - aRect[1])*rsl0, .t. )
// ntop,nleft,nbottom,nright
end case
next
aRect = GetWndRect( ::hWnd )
::Move( ntop,nleft,::nWidth*rsl0, ::nHeight*rsl1, .T. )
if ::lCentered
WndCenter( ::hWnd )
else
if Empty( ::cResName )
::Move( ::nTop, ::nLeft )
endif
endif
return
Shuming Wang
- kokookao2007
- Posts: 59
- Joined: Thu May 17, 2007 8:27 am
-
- Posts: 454
- Joined: Sun Oct 30, 2005 6:37 am
- Location: Guangzhou(Canton),China
- kokookao2007
- Posts: 59
- Joined: Thu May 17, 2007 8:27 am
-
- Posts: 454
- Joined: Sun Oct 30, 2005 6:37 am
- Location: Guangzhou(Canton),China