Win32 SDK中窗口全屏处理

简介:
  首先是考虑全屏处理的时机,是在创建窗口时还是显示窗口时进行,若是前者,则可以:
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;
   hInst = hInstance; // 将实例句柄存储在全局变量中
    UINT width = GetSystemMetrics(SM_CXSCREEN);
    UINT height = GetSystemMetrics(SM_CYSCREEN);
   //创建窗口
   hWnd=CreateWindow(
       szWindowClass,
       szTitle,
       WS_POPUP,
       0,0,
       width,height,
       NULL,NULL,
       hInstance,
       NULL);
   if (!hWnd)
   {
      return FALSE;
   }
   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);
   return TRUE;
}

若是在显示窗口时进行处理:
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;
   hInst = hInstance; // 将实例句柄存储在全局变量中
   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
   if (!hWnd)
   {
      return FALSE;
   }
   HWND   hDesk;   
   RECT   rc;   
   hDesk   =   GetDesktopWindow();   
   GetWindowRect(   hDesk,   &rc   );   
   SetWindowLong(   hWnd,   GWL_STYLE,   WS_BORDER   );   
   SetWindowPos(   hWnd,   HWND_TOPMOST,   0,   0,   rc.right,   rc.bottom,   SWP_SHOWWINDOW);
   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);
   return TRUE;
}

也可以让用户控制全屏的时机,比如按下”ESC“键后进入全屏
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;
   hInst = hInstance; // 将实例句柄存储在全局变量中
   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
   if (!hWnd)
   {
      return FALSE;
   }
   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);
   return TRUE;
}

在窗口处理函数中对ESC键进行处理:
switch (message)
{
case WM_KEYDOWN:
    switch(wParam)
    {
    case VK_ESCAPE:
        {
            HWND   hDesk;   
            RECT   rc;   
            hDesk   =   GetDesktopWindow();   
            GetWindowRect(   hDesk,   &rc   );   
            SetWindowLong(   hWnd,   GWL_STYLE,   WS_BORDER   );   
            SetWindowPos(   hWnd,   HWND_TOPMOST,   0,   0,   rc.right,   rc.bottom,   SWP_SHOWWINDOW);
        }
        break;
    }
return 0;
}

本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2008/02/14/1069117.html,如需转载请自行联系原作者

目录
相关文章
|
开发工具
VC++ WIN32 sdk实现按钮自绘详解.
网上找了很多,可只是给出代码,没有详细解释,不便初学者理解.我就抄回冷饭.把这个再拿出来说说. 实例图片:    首先建立一个标准的Win32 Application 工程.选择a simple Win32 Application.
1656 0
|
开发工具 Windows
win32 sdk树形控件的项拖拽实现
本课中,我们将学习如何使用树型视图控件。另外还要学习如何在树型视图中完成拖-拉动作,以及如何使用图象列表。 理论: 树型视图是一种特别的窗口,我们可以使用它一目了然地表示某种层次关系。譬如象在资源管理器中左边窗口中的就是树型视图。
1266 0
|
开发工具
win32 sdk 列表视图控件绘制
[cpp] view plaincopy   //////////////////////////////////////////////////////////////   LRESULT ListViewCustomDraw(HWND hwnd, LPARAM lParam...
1064 0
|
开发工具
VC++ WIN32 sdk实现按钮自绘详解 之二.
网上找了很多,可只是给出代码,没有详细解释,不便初学者理解.我就抄回冷饭.把这个再拿出来说说. 实例图片:    首先建立一个标准的Win32 Application 工程.选择a simple Win32 Application.
1172 0
|
开发工具 C++ 资源调度
MFC 对象与Win32 SDK 句柄的映射关系
MFC相关技术说明: Mapping of Windows Handles to Objects MFC对象与Win32 SDK 句柄的映射关系 说明: MFC使用C++对象封装Win32句柄(操作系统资源调度单元 HANDLE),所以在概念上一定要把MFC中的关于C++对象和WI...
954 0
|
消息中间件 开发工具 Windows
win32 SDK窗口 详解
  ///Class  Style    是指窗口本身的 属性             // CS_NOCLOSE  就是窗口不能被关闭      //  CS_HREDRAW  CS_VREDRAW  就是在 窗口移动或者 窗口的宽度或者高度改变的时候就会发送 WM_PAINT 消...
1169 0
|
消息中间件 开发工具 Windows
SDK窗口中增加菜单 以及 对菜单做出相应的消息响应
  对于用MFC写程序的人来说会觉得菜单很简单 直接用 APP wizard生成就行了  消息处理也是 由MFC来完成 实际上根本不知道  菜单的原理 下面就介绍下如何在 SDK写的程序中添加菜单      我所使用的环境是 VC6.
781 0
|
1月前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
346 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡