VC小技巧匯總之窗口技巧
本文搜集匯總了VC小技巧的窗口技巧,對(duì)于VC程序開發(fā)的窗口設(shè)計(jì)而言有一定的借鑒價(jià)值,詳情如下:
1.讓窗口一啟動(dòng)就最大化
把應(yīng)用程序類(CxxxApp)的 InitInstance() 函數(shù)中的
m_pMainWnd->ShowWindow(SW_SHOW);
改為
m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
則窗口一啟動(dòng)就最大化顯示。
2.如何設(shè)置窗口的初始尺寸
在將應(yīng)用程序類(CxxAPP)的 InitInstance() 函數(shù)中加入:
m_pMainWnd->SetWindowPos(NULL,x,y,Width,Height,SWP_NOMOVE);
Width為窗口寬度,Height為窗口高度
SWP_NOMOVE表示忽略位置(x,y)。
如:
BOOL CDzyApp::InitInstance() { AfxEnableControlContainer(); …… // The one and only window has been initialized, so show and update it. m_pMainWnd->SetWindowPos(NULL,0,0,750,555,SWP_NOMOVE);//設(shè)置窗口的初始大小為750*555 m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); return TRUE; }
3.讓窗口居中顯示
以下兩種方法可任選其一:
①在應(yīng)用程序類(CxxxApp)的 InitInstance() 函數(shù)中加入:
m_pMainWnd->CenterWindow( GetDesktopWindow() );
②在主框架類(MainFrm.cpp)的OnCreate()函數(shù)中加入:
CenterWindow( GetDesktopWindow() );
如:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; …… // TODO: Delete these three lines if you don't want the toolbar to // be dockable m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar); CenterWindow( GetDesktopWindow() ); //使窗口打開時(shí)處于屏幕正中 return 0; }
4.如何修改窗口標(biāo)題
窗口標(biāo)題一般形式為:文檔標(biāo)題 - 程序標(biāo)題
(1)設(shè)置文檔標(biāo)題:
在文檔類(CxxxDoc)的OnNewDocument()函數(shù)中加入語句:SetTitle("文檔名");
如:TextEditorDoc.cpp:
BOOL CTextEditorDoc::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE; // TODO: add reinitialization code here // (SDI documents will reuse this document) SetTitle("未命名.txt"); //設(shè)置文檔標(biāo)題 return TRUE; }
(2)設(shè)置程序標(biāo)題:
在框架類(CMainFrame)的PreCreateWindow()函數(shù)中加入語句:m_strTitle = _T("程序標(biāo)題");
如:MainFrm.cpp:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs m_strTitle = _T("文本整理器"); //設(shè)置程序標(biāo)題 return TRUE; }
以上兩點(diǎn)比較適用于視圖-文檔結(jié)構(gòu)的程序,在新建文檔時(shí),系統(tǒng)會(huì)自動(dòng)運(yùn)行OnNewDocument()函數(shù),在其中可以設(shè)置合適的標(biāo)題。對(duì)于未采用文檔的程序可以用下面的方法修改標(biāo)題:
(3)修改窗口標(biāo)題:
修改窗口標(biāo)題一般在打開文件函數(shù)OnFileOpen()和另存為函數(shù)OnFileSaveAs()中進(jìn)行,可以使用下面的函數(shù):
AfxGetMainWnd()->SetWindowText("文檔標(biāo)題"+" - "+"程序標(biāo)題");
其中文檔標(biāo)題和程序標(biāo)題可使用定義過的串變量。
- C++ 中CloseHandle 函數(shù)--關(guān)閉一個(gè)句柄
- VC6實(shí)現(xiàn)激活后臺(tái)窗口最佳方法
- VC實(shí)現(xiàn)對(duì)話框窗口任意分割
- VC實(shí)現(xiàn)A進(jìn)程窗口嵌入到B進(jìn)程窗口中顯示的方法
- 在VC中隱藏控制臺(tái)程序窗口的實(shí)現(xiàn)代碼
- C++之CWnd窗口框架實(shí)例
- C++獲取任務(wù)欄打開程序窗口示例
- VC++實(shí)現(xiàn)輸出GIF到窗體并顯示GIF動(dòng)畫的方法
- 用VC++6.0的控制臺(tái)實(shí)現(xiàn)2048小游戲的程序
- VC++編程獲取窗口句柄的方法小結(jié)
相關(guān)文章

C++中new/delete與malloc/free的區(qū)別小結(jié)

Qt+QListWidget實(shí)現(xiàn)氣泡聊天界面(附源碼)

C++函數(shù)的嵌套調(diào)用和遞歸調(diào)用學(xué)習(xí)教程

C++應(yīng)用Eigen庫對(duì)應(yīng)實(shí)現(xiàn)matlab中部分函數(shù)問題