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


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

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

    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);//显示时隐藏鼠标  


     

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

    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. }  


     

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

    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. }  
    以上几种方法需要注意的是在注册窗口类中的菜单项,如果不显示菜单就要把lpszMenuName设为null,否则会在全屏的窗口上显示菜单。
  • 相关阅读:
    【各种排序系列之】归并排序
    【LeetCode练习题】Candy
    【LeetCode练习题】Minimum Window Substring
    【LeetCode练习题】Partition List
    【Java之】多线程学习笔记
    【Java】使用Runtime执行其他程序
    【各种排序系列之】快速排序法
    Bzoj 3389: [Usaco2004 Dec]Cleaning Shifts安排值班 最短路,神题
    Bzoj 1901: Zju2112 Dynamic Rankings 树套树,线段树,平衡树,Treap
    Bzoj 2834: 回家的路 dijkstra,堆优化,分层图,最短路
  • 原文地址:https://www.cnblogs.com/lidabo/p/2595452.html
Copyright © 2020-2023  润新知