windows编程 全屏窗口的创建总结 .

from:http://blog.csdn.net/leolee82/article/details/6992615

windows编程 全屏窗口的创建总结
第一种:较简单的方法
在ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);前加如下代码:

[cpp] view plaincopyprint?

  1. LONG style = GetWindowLong(hwnd,GWL_STYLE);//获得窗口风格   
  2. style = &~WS_CAPTION & ~WS_SIZEBOX;//窗口全屏显示且不可改变大小   
  3. SetWindowLong(hwnd,GWL_STYLE,style); //设置窗口风格   
  4. int screenX = GetSystemMetrics(SM_CXSCREEN);//获取整个屏幕右下角X坐标   
  5. int screenY = GetSystemMetrics(SM_CYSCREEN);//屏幕Y坐标   
  6. SetWindowPos(hwnd, NULL,0,0,screenX,screenY,SWP_NOZORDER);//改变窗口位置、尺寸和Z序   
  7. ShowCursor(FALSE);//显示时隐藏鼠标  
LONG style = GetWindowLong(hwnd,GWL_STYLE);//获得窗口风格
style = &~WS_CAPTION & ~WS_SIZEBOX;//窗口全屏显示且不可改变大小
SetWindowLong(hwnd,GWL_STYLE,style); //设置窗口风格
int screenX = GetSystemMetrics(SM_CXSCREEN);//获取整个屏幕右下角X坐标
int screenY = GetSystemMetrics(SM_CYSCREEN);//屏幕Y坐标
SetWindowPos(hwnd, NULL,0,0,screenX,screenY,SWP_NOZORDER);//改变窗口位置、尺寸和Z序
ShowCursor(FALSE);//显示时隐藏鼠标

 

第二种:在按下esc后实现全屏  

[cpp] view plaincopyprint?

  1. switch (message)  
  2. {  
  3. case WM_KEYDOWN:  
  4.  switch(wParam)  
  5.  {  
  6.  case VK_ESCAPE:  
  7.  {  
  8.    HWND    hDesk;     
  9.    RECT    rc;     
  10.    hDesk   =    GetDesktopWindow();     
  11.   GetWindowRect(    hDesk,   &rc    );     
  12.   SetWindowLong(    hWnd,    GWL_STYLE,    WS_BORDER    );     
  13.   SetWindowPos( hWnd,    HWND_TOPMOST,0,0, rc.right, rc.bottom,       
  14.   
  15.      SWP_SHOWWINDOW);  
  16.    }  
  17.     break;  
  18.      }  
  19.  return 0;  
  20. }  
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;
}

 

第三种:在消息中加入一下代码

[cpp] view plaincopyprint?

  1. static int cx, cy, cxDib, cyDib;  
  2. hdc=::GetDC(NULL);  
  3. switch (message)  
  4. {  
  5.   case WM_CREATE:  
  6.  cx = GetDeviceCaps(hdc,HORZRES) +  
  7.   GetSystemMetrics(SM_CXBORDER);  
  8.        cy = GetDeviceCaps(hdc,VERTRES) +  
  9.  GetSystemMetrics(SM_CYBORDER);  
  10.    ::ReleaseDC(0,hdc);  
  11.   
  12. //去除标题和边框   
  13.        SetWindowLong(hWnd, GWL_STYLE,  
  14.        GetWindowLong(hWnd, GWL_STYLE) &  
  15.        (~(WS_CAPTION | WS_BORDER)));  
  16.   
  17. // 置对话框为最顶端并扩充到整个屏幕   
  18.  ::SetWindowPos(hWnd, HWND_TOPMOST,  
  19.    -(GetSystemMetrics(SM_CXBORDER)+1),  
  20.   -(GetSystemMetrics(SM_CYBORDER)+1),   
  21.  +1,cy+1, SWP_NOZORDER);  
  22. }  
static int cx, cy, cxDib, cyDib;
hdc=::GetDC(NULL);
switch (message)
{
  case WM_CREATE:
 cx = GetDeviceCaps(hdc,HORZRES) +
  GetSystemMetrics(SM_CXBORDER);
       cy = GetDeviceCaps(hdc,VERTRES) +
 GetSystemMetrics(SM_CYBORDER);
   ::ReleaseDC(0,hdc);

//去除标题和边框
       SetWindowLong(hWnd, GWL_STYLE,
       GetWindowLong(hWnd, GWL_STYLE) &
       (~(WS_CAPTION | WS_BORDER)));

// 置对话框为最顶端并扩充到整个屏幕
 ::SetWindowPos(hWnd, HWND_TOPMOST,
   -(GetSystemMetrics(SM_CXBORDER)+1),
  -(GetSystemMetrics(SM_CYBORDER)+1),
 +1,cy+1, SWP_NOZORDER);
}

以上几种方法需要注意的是在注册窗口类中的菜单项,如果不显示菜单就要把lpszMenuName设为null,否则会在全屏的窗口上显示菜单。

时间: 2024-12-05 05:04:20

windows编程 全屏窗口的创建总结 .的相关文章

背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸

原文:背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸 [源码下载] 背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸 作者:webabcd 介绍背水一战 Windows 10 之 UI 窗口全屏 窗口尺寸 示例1.窗口全屏UI/FullScreen.xaml <Page x:Class="Windows10.UI.FullScreen" xmlns="http://schemas.microsoft.com/winfx/

按钮打开全屏窗口

按钮打开全屏窗口 下面框中为脚本显示区  

Directx11教程(12) 禁止alt+enter全屏窗口

       在D3D11应用程序中,我们按下alt+enter键,会切换到全屏模式.有时候,我们在WM_SIZE中有一些代码,全屏时,会使得程序崩溃,比如之前教程的代码,就是如此.      下面我们在D3DClass.cpp 中,增加代码,禁止alt+enter键全屏.有两种方法可以做到这个功能,下面我们分别贴出代码: 第一种方法:     D3DClass.cpp中修改Initialize函数,调用MakeWindowAssociation时候,使用SwapChain的内部接口工厂. 注意

在VC中实现全屏窗口程序

全屏显示是一些应用软件程序必不可少的功能.比如在用VC++编辑工程源文件或编辑对话框等资源时,选择菜单"ViewFull Screen",即可进入全屏显示状态,按"Esc"键后会退出全屏显示状态. 在VC++6.0中我们用AppWizard按默认方式生成单文档界面的应用程序框架.下面将先讨论点击菜单项"ViewFull Screen"实现全屏显示的方法,再讲述按"Esc"键后如何退出全屏显示状态. 1) 在CMainFrame

实现浏览器全屏窗口的几种方法

IE 浏览器隐身 浏览网页,时常会发现自己的浏览器窗口不见了,但网页内容还在.这种效果是不是很神奇呢?实现此种功能只要有三种原理,按实现方法的不同,给它们各起了个名字,分别是:瞒天过海法.借尸还魂法和返璞归真法.不要被它们的名字吓着了,其实实现起来并不困难,只要看了下面的内容,就明白个中道理了! 一.瞒天过海法-javascript 我们知道,显示器的分辩率大小决定了我们看到的程序窗口的面积大小,分辩率越大,窗口面积越大,看到的内容就越多.但并不是说显示面积越大就越好,因为分辩率的变化会带来菜单

windows编程-两个窗口穿参数,指针数据丢失

问题描述 两个窗口穿参数,指针数据丢失 在头文件里面声明了一个 struct Param { BITMAPINFO *pinfo; BYTE *pbit; DWORD h; DWORD w; };结构体 程序绝大部分如下 #include "stdafx.h" #include #include #include "resource.h" #include "MainDlg.h" #include "SHOWDLG.h" #i

html全屏窗口调用方法

下面代码放到html里 <SCRIPT LANGUAGE="JavaScript">function openwinfull_greenteadesign(){ var Pop;            if (self.screen) {             sw = screen.width;            sh = screen.height;   w = sw - 10; // to center: use desired width   h = sh -

Flash+JS 打造全屏仿windows

js|window Flash+JS 打造全屏仿windows 一.需求分析: 1:全屏页面分辨率需为 1024*768 如果低于此分辨率,画面精细的效果得不到体现.所以应该限制此分辩率以下的操作系统访问此界面. 2:打开的全屏窗口应该右上角有最小化.关闭按扭. 3:每个载入的窗口应该可以移动.关闭.最小化. 4:桌面上的图标可以拖动,双击. 5:屏幕底部有一个任务栏,当鼠标移至屏幕底部,任务栏从底部弹出.可以用一个按扭使其退回屏幕底部. 二.技术要点: Java Script:Screen 对

Flash中开启全屏的窗口

难度: 中级软件环境: Flash 4 or 5, NS or IE 4 or higher. 我们在这个例子中有很多的需求,但是我不是一个JAVACSCRIPT程序员,所以我请人在网页中实现这一效果.大多数人觉得全屏很烦人,所以我们总结出一条经验:决不 在大家不需要全屏的时候实现它,因为这样做很烦人,不是吗?那好,我们继续. 我们要将这些代码拷贝粘贴到我们的HTML文件中.我对这段代码做了细微的改动以允许我们实现这一功能. 我接到的许多邮件中经常包含以下两个常见的错误: 在FLASH中发布HT