• 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,否则会在全屏的窗口上显示菜单。
  • 相关阅读:
    hitachi2020 C-ThREE
    LOJ#2083. 「NOI2016」优秀的拆分
    BZOJ2754: [SCOI2012]喵星球上的点名
    BZOJ4516: [Sdoi2016]生成魔咒
    AtCoder Beginner Contest 146解题报告
    拉格朗日插值复习笔记
    对于求解单峰函数最值问题的探讨
    BZOJ5509: [Tjoi2019]甲苯先生的滚榜
    面试技巧
    性能案例分析 | MAT分析内存泄露
  • 原文地址:https://www.cnblogs.com/lidabo/p/2595452.html
Copyright © 2020-2023  润新知