⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000000.txt

📁 水木清华BBS站的讨论区精华集锦
💻 TXT
字号:
 
                       --===BBS水木清华站∶精华区===--
 
                        -===BBS水木清华站∶精华区===-
   9-16: 对窗口的 控制 
  
   9. 如何改变窗口的 图标? 
     向窗口发送 WM_SECTION消息。 
     Example: 
       HICON hIcon=AfxGetApp() ->LoadIcon(IDI_ICON); 
       ASSERT(hIcon); 
       AfxGetMainWnd() ->SendMessage(WM_SECTION,TRUE,(LPARAM) hIcon); 
  
 10. 如何改变窗口的 缺省风格? 
       重栽 CWnd:: PreCreateWindow 并修改CREATESTRUCT结构来指定窗口风格和其 
      创建信息. 
      Example: Delete "Max" Button and Set Original Window's Position and 
 Size 
  
       BOOL CMainFrame::  PreCreateWindow (CREATESTRUCT &cs) 
       { 
        cs.style &=~WS_MAXINIZEMOX; 
  
        cs.x=cs.y=0; 
        cs.cx=GetSystemMetrics(SM_CXSCREEN/2); 
        cs.cy=GetSystemMetrics(SM_CYSCREEN/2); 
  
         return CMDIFramewnd ::PreCreateWindow(cs); 
  
       } 
  
   11.  如何将窗口居中显示? 
         Easy, Call Function CWnd:: Center Windows 
  
          Example(1):  Center Window( );  //Relative to it's parent 
           // Relative to Screen 
          Example(2):  Center Window(CWnd:: GetDesktopWindow( )); 
           //Relative to Application's MainWindow 
          AfxGetMainWnd( ) -> Center Window( ); 
  
    12. 如何让窗口和 MDI窗口一启动就最大化和最小化? 
        先说窗口。 
        在 InitStance 函数中设定 m_nCmdShow的 取值. 
          m_nCmdShow=SW_SHOWMAXMIZED ;  //最大化 
          m_nCmdShow=SW_SHOWMINMIZED ;  //最小化 
          m_nCmdShow=SW_SHOWNORMAL   ;   //正常方式 
  
         MDI窗口: 
           如果是创建新的应用程序,可以用 MFC AppWizard 的Advanced 按钮并在 
            MDI子窗口风格组中检测最大化或最小化; 还可以重载 MDI Window 的 
             PreCreateWindow函数,设置WS_MAXMIZE or WS_MINMIZE; 
          如果从 CMDIChildWnd 派生,调用 OnInitialUpdate函数中的 CWnd::Show 
         Window来指定 MDI Child Window的 风格。 
  
    13. 如何使程序保持极小状态? 
        很有意思的 问题 
         这么办: 在恢复程序窗体大小时, Windows会发送WM_QUERY-OPEN消息, 
         用 ClassWizard设置成员函数 OnQueryOpen() ,add following code: 
             Bool CMainFrame:: OnQueryOpen( ) 
               { 
                  Return false; 
               } 
  
    14. 如何限制窗口的 大小? 
       也就是 FixedDialog形式。  Windows 发送 WM_GETMAXMININFO消息来跟踪, 
     响应它,在 OnGetMAXMININFO 中写代码: 
  
    15.  如何使窗口不可见? 
     很简单,用SW_HIDE 隐藏窗口,可以结合 FindWindow,ShowWindow 控制. 
  
    16. 如何使窗口始终在最前方? 
       两种途径. 
        BringWindowToTop(Handle); 
        SetWindowPos函数,指定窗口的 最顶风格,用WS_EX_TOPMOST扩展窗口的 风格 
  
        Example: 
          void  ToggleTopMost( CWnd *pWnd) 
           { 
              ASSERT_VALID(pWnd); 
              pWnd ->SetWindowPos(pWnd-> GetStyle( ) &WS_EX_TOPMOST)? 
               &wndNoTopMOST: &wndTopMost,0,0,0,0,SSP_NOSIZE|WSP_NOMOVE); 
            } 
  
  
     待续... 还有好多东东 
 
                        -===BBS水木清华站∶精华区===-

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -