只是那么一点点的就好(窗口满屏显示NEW!)
怎么使窗口满屏显示, 常规代码如下:
Environment le_env
int li_screenheight,li_screenwidth
Getenvironment(le_env)
li_screenwidth = le_env.ScreenWidth
li_screenheight = le_env.ScreenHeight
li_screenwidth = PixelsToUnits(li_screenwidth, XPixelsToUnits!)
li_screenheight= PixelsToUnits(li_screenheight, YPixelsToUnits!)
aw_param.move(0,0)
if li_screenwidth>100 and li_screenheight>100 then
aw_param.resize(li_screenwidth, li_screenheight)
end if
但以上窗口满屏时,窗口会将WINDOWS任务条(TaskBar)摭住,而且任务栏是可以托动的,用户也可以定制,你能保证你的窗口不会摭住它们吗?
其实你在窗口要是保证在桌面的工作区内就不会有这样的问题了,怎么解决呢?只要一点点,调用一个windows API函数就可以了:
constant ulong SPI_GETWORKAREA=48
以下VC写,之后做成DLL,此函数在参数中返回WINDOWS工作区左上右下的坐标
int GetWorkArea(long &left, long &top, long &right, long &bottom)
{
int nRet;
RECT r;
nRet=::SystemParametersInfo(SPI_GETWORKAREA,0,&r,0);
left=r.left;
top=r.top;
right=r.right;
bottom=r.bottom;
return nRet;
}
有了这个函数,余下的就好办了
long ll_x,ll_y,ll_left,ll_top,ll_right,ll_bottom;
GetWorkArea(ll_left,ll_top,ll_right,ll_bottom);
ll_left = PixelsToUnits(ll_left, XPixelsToUnits!)
ll_right = PixelsToUnits(ll_right, XPixelsToUnits!)
ll_top = PixelsToUnits(ll_top, YPixelsToUnits!)
ll_bottom = PixelsToUnits(ll_bottom, YPixelsToUnits!)
aw_param.move(ll_left,ll_top)
aw_param.resize(ll_right - ll_left, ll_bottom - ll_top)
这样无论WINDOWS任务条在何处均可以适应,只是多了一点点,怎么样?
同样你也可以改造你的窗口居中函数,GetWorkArea在Win98/win2000下工作正常。