关闭

使对话框全屏显示

1646人阅读 评论(0) 收藏 举报
如何使对话框全屏显示呢?
我们可以借助于函数SetWindowPos,其原型如下:
BOOL SetWindowPos ( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags );
参数说明:
pWndInsertAfter  可以取值如下 wndTop    wndBottom  wndTopMost   wndNoTopMost
接下来的四个参数分别用来设置窗口的左上角坐标和窗口的Width and Height ,最后一个
参数用来设置窗口的一些样式
详细的请参看MSDN
下面就来说说如何实现:
窗口要全屏显示,肯定是处于最顶层的所以 pWndInsetAfter取值&wndTopMost
窗口的左上角坐标可以设置为(0,0)或更小。
最后一个参数也好确定我们可以简单地设为SWP_SHOWWINDOW  ,保证窗口显示
关键就是如何设置窗口的Width and Height ,当然我们很容易想到用当前屏幕的 Width 和 Height
来设置窗口的Width和 Height 。但是如何的到呢?
下面介绍几种方法:
方法一:
用GetDeviceCaps,方法如下
    int cx,cy;
    HDC hDC = ::GetDC( NULL );//获得屏幕的DC
    cx = ::GetDeviceCaps( hDC, HORZRES ) + //获取屏幕的水平尺寸
         GetSystemMetrics( SM_CXBORDER ); 
    cy = ::GetDeviceCaps( hDC, VERTRES ) + //获取屏幕的垂直尺寸
         GetSystemMetrics( SM_CYBORDER );
    ::ReleaseDC( NULL, hDC );
这样我们就获得了屏幕的Width 和 Height 了
方法二:
用GetSystemMetrics,方法如下
cx = GetSystemMetrics( SM_CXSCREEN );//获取屏幕的水平尺寸
 cy = GetSystemMetrics( SM_CYSCREEN );//获取屏幕的垂直尺寸
既然Width 和 Height 都已获取了下面用SetWindowPos就可以了
SetWindowPos( &wndTopMost, 0, 0 , cx, cy,
                  SWP_SHOWWINDOW );
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:65668次
    • 积分:1001
    • 等级:
    • 排名:千里之外
    • 原创:31篇
    • 转载:11篇
    • 译文:0篇
    • 评论:33条
    文章分类
    最新评论