BOOL CLEDApp::InitInstance()
中,关于默认的图标的程序:
CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CLEDDoc), RUNTIME_CLASS(CMainFrame), // main SDI frame window RUNTIME_CLASS(CLEDView)); AddDocTemplate(pDocTemplate);
二.修改图标(可以)
替换默认的MFC图标,先要自己画一个符合格式要求的位图或从外部导入一个图标,修改其属性名,假设为IDI_IDI1。在MainFrm的OnCreate()里添加如下代码:
HICON m_hIcon; m_hIcon = AfxGetApp()->LoadIcon(IDI_IDI1); SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon
其中big icon是32×32,small icon是16×16
一.修改标题
标题分为前后两部分,前面一部分默认是文档名,后面一部分默认是工程名,比如我新建一个叫做UITEST的工程,那标题就是“UITEST1-UITEST”。后面都用这个工程为例。
1.修改前半部分:(可以)
可以重载文档类的虚函数SetTile,如下
void CTestDoc::SetTitle(LPCTSTR lpszTitle) { CDocument::SetTitle(L"你的标题"); }
也可以在UITESTDoc.app中,在BOOL CUITESTDoc::OnNewDocument()函数中添加SetTitle(L"你的标题")
2.修改后半部分:
改资源字符串
在资源视图的String Table中找到IDR_MAINFRAME,将其标题改为你想要的标题
3.去掉-:
去掉标题中间的-,只显示后面的标题,
方法1:通过重载CFramWnd类的OnUpdateFrameTitle函数(?)
virtual void OnUpdateFrameTitle(BOOL NaDa); void CMainFrame.:OnUpdateFrameTitle(BOOL NaDa) { CString csAppName; csAppName.Format(AFX_IDS_APP_TITLE); SetWindowText(csAppName); }
此时显示的结果只有字符串资源AFX_IDS_APP_TITLE所定义的字符串,当然也可以把SetWindowText(csAppName)中的csAppName换成你想要的标题字符串。
方法2:在CMainFrame的PreCreateWindow函数中修改窗口风格(可以)
BOOL CMainFrame.:PreCreateWindow(CREATESTRUCT& cs) { cs.style&= ~(LONG) FWS_ADDTOTITLE; return CFrameWnd::PreCreateWindow(cs); }
使用此方法,窗口的标题只显示IDR_MAINFRAME字符串中第一个 之前的部分
改前部分标题
1,可以在文档程序的,onNewDocument中用
SetTitle函数。
BOOL CViewDoc::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE; ((CEditView*)m_viewList.GetHead())->SetWindowText(NULL); // TODO: add reinitialization code here // (SDI documents will reuse this document) SetTitle("xxx"); return TRUE; }