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ù)問題

