?? 00000000.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 + -