VC++2008别人给我一个VC程序,如何更改标题栏项目名称(就是运行窗口左上角那个名称)

2024-12-21 21:08:42
推荐回答(5个)
回答1:

如果是对话框就直接在属性里改
如果是文档的标题,参考下面

MFC程序的默认的标题是“无标题-title”,其中title是应用程序的名称,我们应如何修改MFC窗口标题来符合自己的要求?
MFC程序的文档类中定义了一个虚函数SetTitle,用于设置窗口标题的前半部分,如果只是要修改“无标题”部分,可以重载文档类的该函数。窗口标题的后半部分可以通过SetWindowText设置,也可以编辑字符串资源中的IDR_MAINFRAME字符串,将第一个"n之前的字符串替换掉即可,而如果你想把“无标题”部分除掉,则必须修该窗口的风格。
一、修改前半部分
1) 可以重载文档类的虚函数SetTitle
void CTestDoc::SetTitle(LPCTSTR lpszTitle)
{
CDocument::SetTitle(L"你的标题");
}
也可以在 CTestDoc::OnNewDocument()中添加SetTitle(L"你的标题");
二、修改后半部分
1) 修改资源字符串:
将资源文件中的IDR_MAINFRAME修改为
修改此处"n"nChange"n"n"nChangeTitle.Document"nChange Document
资源字符串中各子串的含义可以参考:IDR_MAINFRAME字符串资源中各子串的含义
2) 使用框架窗口类的SetWindowText(L"你的标题"):
在应用程序类CTestApp::InitInstance()中调用如下语句
m_pMainWnd->SetWindowText(L"你的标题");
或者在其他地方用AfxGetMainWnd()->SetWindowText(L"你的标题");
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所定义的字符串
4) 是在CMainFrame的PreCreateWindow函数中修改窗口风格:
BOOL CMainFrame.:PreCreateWindow(CREATESTRUCT& cs)
{
cs.style. &= ~(LONG) FWS_ADDTOTITLE;
return CFrameWnd::PreCreateWindow(cs);
}
使用此方法,窗口的标题只显示IDR_MAINFRAME字符串中第一个"n之前的部分

修改MFC标题栏上的图标

HICON m_hIcon;

在MainFrm的OnCreate()里

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

IDR_MAINFRAME字符串资源中各子串的含义

IDR_MAINFRAME字符串资源中包含7个子串,分别以"n结束,即如下格式:

"n"n"n"n"n"n"n
(1)CDocTemplate::windowTitle,主窗口标题栏上的字符串,MDI程序不需要指定,将以IDR_MAINFRAME字符串为默认值。
(2)CDocTemplate::docName,缺省文档的名称。如果没有指定,缺省文档的名称是无标题。
(3)CDocTemplate::fileNewName,文档类型的名称。如果应用程序支持多种类型的文档,此字符串将显示在"File/New"对话框中。如果没有指定,就不能够在"File/New"对话框处理这种文件。
(4)CDocTemplate::filterName,文档类型的描述和一个适用于此类型的通配符过滤器。这个字符串将出现在“File/Open”对话框中的文件类型列表框中。要和CDocTemplate::filterExt一起使用。
(5)CDocTemplate::filterExt,文档的扩展名。如果没有指定,就不能够在“File/Open"
文章出处:DIY部落(http://www.diybl.com/course/3_program/c++/cppjs/20090403/164043.html)

回答2:

打开工程,然后打开窗口,然后在窗口属性里找到名称,修改成你要的名称,重新编译下就可以了。

回答3:

如果是对话框程序,直接打开对话框编辑器修改标题,如果不是,就在OnCreate里调用SetWindowText("标题");

回答4:

frame里的precreate中去掉窗口的 自动标题 属性
cs.style &=~FWS_ADDTOTITLE;

frame里 oncreate中设置自己的标题
SetWindowText(_T("自定义标题xxxx"));

回答5:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.lpszName="你要的名字";
cs.style&=~FWS_ADDTOTITLE;
return TRUE;
}