程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> VC常見入門問題總結(三)

VC常見入門問題總結(三)

編輯:vc教程

1. 如何改變窗口的圖標?

   向窗口發送 WM_SECTION消息。

  Example:

   HICON hIcon=AfxGetApp() ->LoadIcon(IDI_ICON);

   ASSERT(hIcon);

   AfxGetMainWnd() ->SendMessage(WM_SECTION,TRUE,(LPARAM) hIcon);

2. 如何改變窗口的缺省風格?

   重載 CWnd:: PreCreateWindow 並修改CREATESTRUCT結構來指定窗口風格和其他創建信息.

   Example: Delete "Max" Button and Set Original Window's Position andSize

   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);

   }

3. 如何將窗口居中顯示?

    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( );

4. 如何讓窗口和 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::ShowWindow來指定 MDI Child Window  的風格。

5. 如何使程序保持極小狀態?

  在恢復程序窗體大小時,Windows會發送WM_QUERY-OPEN消息用 ClassWizard設置成員函數 OnQueryOpen() ,add following code:

      Bool CMainFrame:: OnQueryOpen( )

       {

         Return false;

       }

6. 如何限制窗口的 大小?

   也就是 FixedDialog形式。 Windows 發送 WM_GETMAXMININFO消息來跟蹤,響應它,在 OnGetMAXMININFO  中寫代碼:

7. 如何使窗口不可見?

用SW_HIDE 隱藏窗口,可以結合 FindWindow,ShowWindow 控制。

8. 如何使窗口始終在最前方?

   兩種途徑.

   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);

     }

9.如何單擊除了窗口標題欄以外的區域使窗口移動

當窗口需要確定鼠標位置時Windows向窗口發送WM_NCHITTEST信息,可以處理該信息使Windows認為鼠標在窗 口標題上。對於對話框和基於對話的應用程序,可

[1] [2] [3] 下一頁

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved