对话框全屏

来源:互联网 发布:淘宝上怎么打印快递单 编辑:程序博客网 时间:2024/05/16 19:29

      在OnInitDialog()函数中,调用

this->ShowWindow( SW_SHOWMAXIMIZED);

函数用于将对话框全屏。

      其可选参数如下:

  • SW_HIDE   隐藏该窗口,并激活另一个窗口。
  • SW_MINIMIZE   最小化窗口,并且激活系统列表中的顶层窗口。
  • SW_RESTORE   激活并显示窗口。如果窗口最大化或最小化,窗口将被还原为其初始化时的大小和位置。
  • SW_SHOW   激活该窗口,并且以当前的尺寸和位置显示该窗口。
  • SW_SHOWMAXIMIZED   激活窗口,并最大化显示该窗口。
  • SW_SHOWMINIMIZED   激活窗口,并且将其显示为一个图标。
  • SW_SHOWMINNOACTIVE   窗口显示为一个图标,并且当前活动窗口仍然有效。
  • SW_SHOWNA   以当前状态显示窗口,当前窗口仍然有效。
  • SW_SHOWNOACTIVATE   以其最近的尺寸和位置显示窗口,当前窗口仍然有效。
  • SW_SHOWNORMAL   激活并显示窗口。如果窗口最大化或最小化,就将窗口还原为其原来的尺寸和位置。

可根据具体的需求选择需要的参数。在这里,选择SW_SHOWMAXSIZED来实现对话框的全屏显示。

      不过,在实际编程时吗、,将参数写为SW_MAXIMIZE,也会获得全屏的效果。

      第二种实现对话框窗口全屏的方式是:

ModifyStyle(WS_CAPTION,0,0); //此句可以去掉对话框中的标题栏
SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE,0);


      第三种全屏显示的方法:随屏幕的分辩率而调节

      GetWindowPlacement(&m_OldWndPlacement);    
  CRect WindowRect;    
  GetWindowRect(&WindowRect);    
  CRect ClientRect;    
  RepositionBars(0, 0xffff, AFX_IDW_PANE_FIRST, reposQuery, &ClientRect);    
  ClientToScreen(&ClientRect);
   
  //获取屏幕的分辨率    
  int nFullWidth=GetSystemMetrics(SM_CXSCREEN);    
  int nFullHeight=GetSystemMetrics(SM_CYSCREEN);
    
  //将除控制条外的客户区全屏显示到从(0,0)到(nFullWidth, nFullHeight)区域,
      //将(0,0)和(nFullWidth, nFullHeight)两个点外扩充原窗口和除控制条之外的
      //客户区位置间的差值, 就得到全屏显示的窗口位置    
  m_FullScreenRect.left=WindowRect.left-ClientRect.left;    
  m_FullScreenRect.top=WindowRect.top-ClientRect.top;    
  m_FullScreenRect.right=WindowRect.right-ClientRect.right+nFullWidth;    
  m_FullScreenRect.bottom=WindowRect.bottom-ClientRect.bottom+nFullHeight;    
  m_bFullScreen=TRUE;   //设置全屏显示标志为TRUE
    
  //进入全屏显示状态    
  WINDOWPLACEMENT wndpl;    
  wndpl.length=sizeof(WINDOWPLACEMENT);    
  wndpl.flags=0;    
  wndpl.showCmd=SW_SHOWNORMAL;    
  wndpl.rcNormalPosition=m_FullScreenRect;    
  SetWindowPlacement(&wndpl);



原创粉丝点击