返回首页

我有一个小对话框在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);

回答

评论会员: 时间:2
b