2010-03-18 31 views
0

在我的VC++ MFC應用程序中,我有不同的views.And在每個視圖中,當我最大化它時,我將大小和位置更改爲新的東西(通常它完全獲得最大化爲屏幕大小)。但我不想tht.So在OnSize()我這樣編碼。OnSize()VC++中的問題

void CChildFrame::OnSize(UINT nType, int cx, int cy) 
{ 
CMDIChildWnd::OnSize(nType, cx, cy); 

int XBorder = GetSystemMetrics(SM_CXMAXIMIZED); 
int YBorder = GetSystemMetrics(SM_CYMAXIMIZED); 
switch (nType) 
    { 
     case SIZE_MAXIMIZED: 
SetWindowPos(NULL,0,60,XBorder-45,YBorder-60,SWP_NOZORDER); 
    break; 
} 
} 

但是發生了什麼事是什麼?當我最大限度的視圖,其獲得最大化上面提到的大小而已。不過在這藍色的吧,有沒有對最小化,最大化,關閉按鈕。 當我雙擊藍色條時,它會恢復到以前的位置,所有的按鈕。 我怎樣才能得到這個?

回答

0

我不明白什麼是「藍色條」,但您可能會考慮以下方向:修改Windows樣式(請參閱WS_MAXIMIZE,WS_MAXIMIZEBOX,...);覆蓋OnGetMinMaxInfo而不是OnSize。

+0

藍條是帶系統菜單和標題的系統文件。 我使用OnGetMinMaxInfo()。但它獲得X,Y位置爲0,0只。但我想X = 0,Y = 60。 這是我的OnGetMinMaxInfo() lpMMI-> ptMaxTrackSize.x = XBorder-100; lpMMI-> ptMaxTrackSize.y = YBorder-100; – Anu