17.3 仿木质桌面的全屏对话框
有些软件需要全屏显示,使用效果更佳。本实例的相册翻页效果就是这种情形,将整个桌面模仿现实生活中的桌面,让相册的反动效果更加真实。下面将讲解如何实现仿真实桌面的全屏对话框。
17.3.1 设置对话框全屏显示
实现对话框的全屏效果。这一步比较简单,在对话框的初始化函数中获取屏幕的尺寸,然后根据屏幕的尺寸移动窗体。
- 01 BOOL CMyBookDlg::OnInitDialog()
- 02 {
- 03 CDialog::OnInitDialog();
- 04 int screen_width, screen_height;;
- 05 screen_width = GetSystemMetrics(SM_CXSCREEN); //获取屏幕宽度
- 06 screen_height = GetSystemMetrics(SM_CYSCREEN); //获取屏幕高度
- 07 MoveWindow(0, 0, screen_width, screen_height, SWP_SHOWWINDOW);
- 08 }
【代码解析】
第5、6行获取屏幕的尺寸。第7行将窗体全屏化。在这里用到了两个系统函数。
GetSystemMetrics()函数用于得到被定义的系统数据或者系统配置信息。函数原型如下:
- int WINAPI GetSystemMetrics(
- __in int nIndex
- );
当参数 nIndex被指定为SM_CXSCREEN时,函数返回屏幕的宽。当nIndex被指定为SM_CYSCREEN时,函数返回屏幕的高。
MoveWindow()函数:用于改变指定窗口的位置和尺寸。函数原型如下。
- BOOL MoveWindow(
- HWND hWnd, //窗口句柄
- int x, //指定窗口的新位置的左边界
- int y, //指定窗口的新位置的顶部边界
- int nWidth, //指定窗口的新的宽度
- int nHeight, //指定窗口的新的高度
- BOOL BRePaint //确定窗口是否被刷新
- ) ;