我有一个小对话框在Visual Studio 2005年版的应用程序,其中有几个按钮,编辑框和静态框等。我的问题是,我想无论任何显示器尺寸上运行它使全屏幕应用程序。但每当最大化的即时通讯应用程序对话框猪整个屏幕,但控件(编辑框,按钮,静态框等)仍然根深蒂固到原来的位置,即它亘古不变的均匀摊开占据整个屏幕。
我已经一派这个问题,并发现了一些代码,但他们正在做同样的事情,最大限度地提高应用程序。
有人可以帮助我。
这些代码IM使用,以最大限度地发挥我的应用
// 1st solution
CRect rcDesktop;
int SM_XVIRTUALSCREEN,SM_CXVIRTUALSCREEN,SM_CYVIRTUALSCREEN,SM_YVIRTUALSCREEN;
rcDesktop.left = GetSystemMetrics(SM_XVIRTUALSCREEN);
rcDesktop.right = rcDesktop.left + GetSystemMetrics(SM_CXVIRTUALSCREEN);
rcDesktop.top = GetSystemMetrics(SM_YVIRTUALSCREEN);
rcDesktop.bottom = rcDesktop.top + GetSystemMetrics(SM_CYVIRTUALSCREEN);
MoveWindow(rcDesktop, FALSE);
// 2nd solution
int cx, cy;
HDC dc = ::GetDC(NULL);
cx = GetDeviceCaps(dc,HORZRES) +
GetSystemMetrics(SM_CXBORDER);
cy = GetDeviceCaps(dc,VERTRES) +
GetSystemMetrics(SM_CYBORDER);
::ReleaseDC(0,dc);
// Remove caption and border
SetWindowLong(m_hWnd, GWL_STYLE,
GetWindowLong(m_hWnd, GWL_STYLE) &
( (WS_CAPTION | WS_BORDER)));
// Put window on top and expand it to fill screen
::SetWindowPos(m_hWnd, HWND_TOPMOST,
-(GetSystemMetrics(SM_CXBORDER)+1),
-(GetSystemMetrics(SM_CYBORDER)+1),
cx+1,cy+1, SWP_NOZORDER);