标题栏中的“无标题”去掉方法
1、BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
cs.style &= ~(LONG) FWS_ADDTOTITLE;//就这一句,去掉无标题
return TRUE;
}
2、 BOOL CYourProjectApp::InitInstance()
{...
m_pMainWnd->SetWindowText("你所希望的名字");
m_pMainWnd->UpdateWindow();
}
3、CMyFileDoc::OnNewDocument()
{
SetTitle ("我的程序" );
if (!CDocument::OnNewDocument())
return FALSE;
return TRUE;
}
标题栏中有两个标题, 在OnNewDocument()的改动可以改变第一个标题
其他方法:
方法一:重载CDocument的虚函数"SetTitle":
void CMyDoc::SetTitle(LPCTSTR lpszTitle)
{
CDocument::SetTitle("MyTitle");
}
*这个方法是将标题改为"MyTitle - MyApp"
方法二:在程序中的任何位置调用下面的函数:
(AfxGetMainWnd( ))->SetWindowText("MyApp");
*这个方法是将标题改为"MyApp",但是每当一个文档对象被创建时,MFC就会加上文档名
方法三:重载CFrameWnd的虚函数"OnUpdateFrameTitle"
void CMainFrame::OnUpdateFrameTitle(BOOL Nada)
{
// get app name from string table resource
//----------------------------------------
CString csAppName;
csAppName.Format(AFX_IDS_APP_TITLE);
// Set caption of main frame window
//---------------------------------
SetWindowText(csAppName);
}
*注意,在微软的联机帮助中是找不到这个函数的,在新的版本中也可能不支持这个函数,所以要慎用
方法四:最好的和最安全的方法,就是改写窗口的属性
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &= ~(LONG) FWS_ADDTOTITLE;
return CFrameWnd::PreCreateWindow(cs);
}