一般来说如果
SDI
和
MDI
程序的标题是
“
无标题
-title”
,其中
title
是应用程序的名称,此时想要改变应用程序的标题,该怎么办呢?
MS VC++ 的文档类中定义了一个虚函数 SetTitle, 用于设置窗口标题的前半部分,如果只是要修改 “ 无标题 ” 部分,可以重载文档类的该函数。窗口标题的后半部分可以通过 SetWindowText 设置,也可以编辑字符串资源中的 IDR_MAINFRAME 字符串,将第一个 /n 之前的字符串替换掉即可,而如果你想把 “ 无标题 ” 部分除掉,则必须修该窗口的风格。
修改前半部分
1 重载虚函数 SetTitle
void CChangeTitleDoc::SetTitle(LPCTSTR lpszTitle)
{
CDocument::SetTitle(" 我的标题 , 呵呵 ");
}
修改后半部分
2 将字符串资源中的 IDR_MAINFRAME 修改为
我的程序 /n/nChange/n/n/nChangeTitle.Document/nChange Document
2 的替代方法,在程序的任何地方调用如下语句
(AfxGetMainWnd())->SetWindowText(" 我的程序 ");
3 如果您想除掉标题中间的 “-” ,可以通过重 CFramWnd 类的 OnUpdateFrameTitle 函数,这个函数在 VC 提供的帮助文件中找不到,必须手工添加
virtual void OnUpdateFrameTitle(BOOL NaDa);
void CMainFrame::OnUpdateFrameTitle(BOOL NaDa)
{
CString csAppName;
csAppName.Format(AFX_IDS_APP_TITLE);
SetWindowText(csAppName);
}
此时显示的结果只有字符串资源 AFX_IDS_APP_TITLE 所定义的字符串
另一种方法是在 CMainFrame 的 PreCreateWindow 函数中修改窗口风格:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &= ~(LONG) FWS_ADDTOTITLE;
return CFrameWnd::PreCreateWindow(cs);
}
使用此方法,窗口的标题只显示 IDR_MAINFRAME 字符串中第一个 /n 之前的部分
MS VC++ 的文档类中定义了一个虚函数 SetTitle, 用于设置窗口标题的前半部分,如果只是要修改 “ 无标题 ” 部分,可以重载文档类的该函数。窗口标题的后半部分可以通过 SetWindowText 设置,也可以编辑字符串资源中的 IDR_MAINFRAME 字符串,将第一个 /n 之前的字符串替换掉即可,而如果你想把 “ 无标题 ” 部分除掉,则必须修该窗口的风格。
修改前半部分
1 重载虚函数 SetTitle
void CChangeTitleDoc::SetTitle(LPCTSTR lpszTitle)
{
CDocument::SetTitle(" 我的标题 , 呵呵 ");
}
修改后半部分
2 将字符串资源中的 IDR_MAINFRAME 修改为
我的程序 /n/nChange/n/n/nChangeTitle.Document/nChange Document
2 的替代方法,在程序的任何地方调用如下语句
(AfxGetMainWnd())->SetWindowText(" 我的程序 ");
3 如果您想除掉标题中间的 “-” ,可以通过重 CFramWnd 类的 OnUpdateFrameTitle 函数,这个函数在 VC 提供的帮助文件中找不到,必须手工添加
virtual void OnUpdateFrameTitle(BOOL NaDa);
void CMainFrame::OnUpdateFrameTitle(BOOL NaDa)
{
CString csAppName;
csAppName.Format(AFX_IDS_APP_TITLE);
SetWindowText(csAppName);
}
此时显示的结果只有字符串资源 AFX_IDS_APP_TITLE 所定义的字符串
另一种方法是在 CMainFrame 的 PreCreateWindow 函数中修改窗口风格:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &= ~(LONG) FWS_ADDTOTITLE;
return CFrameWnd::PreCreateWindow(cs);
}
使用此方法,窗口的标题只显示 IDR_MAINFRAME 字符串中第一个 /n 之前的部分