我們應如何修改MFC視窗標題來符合自己的要求?

2021-06-29 04:31:09 字數 2131 閱讀 7441

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"nchangedocument  資源字串中各子串的含義可以參考:idr_mainframe字串資源中各子串的含義

2) 使用框架視窗類的setwindowtext(l"你的標題"):

m_pmainwnd->setwindowtext(l"你的標題"); 

或者在其他地方用afxgetmainwnd()->setwindowtext(l"你的標題");

3) 如果您想除掉標題中間的「-」,  

可以通過重cframwnd類的onupdateframetitle函式,這個函式在vc提供的幫助檔案中找不到,必須手工新增 

virtual void onupdateframetitle(boolnada); 

void cmainframe.:onupdateframetitle(boolnada)

4) 是在cmainframe的precreatewindow函式中修改視窗風格:

bool cmainframe.:precreatewindow(createstruct&cs)

cs.style. &= ~(long) fws_addtotitle;         

return cframewnd::precreatewindow(cs);

使用此方法,視窗的標題只顯示idr_mainframe字串中第乙個"n之前的部分

更改idr_mainfrm指向的ico檔案,該圖示有兩種格式,32×32和16×16,這兩種格式都要改,還可以在主框架的oncreate函式裡指定使用哪個圖示:

修改mfc標題欄上的圖示

hicon m_hicon;

在mainfrm的oncreate()裡

seticon(m_hicon, true); // set big icon 

seticon(m_hicon, false); // set small icon 

若更改應用程式的圖示,先引入該圖示資源,在resource.h檔案中修改該資源的id值,必須使該資源號在ico資源中最小,否則mfc將使用ico資源號最小的圖示

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」

如何修改MFC視窗標題

mfc程式的預設的標題是 無標題 title 其中title是應用程式的名稱,我們應如何修改mfc視窗標題來符合自己的要求?mfc程式的文件類中定義了乙個虛函式settitle,用於設定視窗標題的前半部分,如果只是要修改 無標題 部分,可以過載文件類的該函式。視窗標題的後半部分可以通過setwind...

如何修改MFC視窗標題

mfc程式的預設的標題是 無標題 title 其中title是應用程式的名稱,我們應如何修改mfc視窗標題來符合自己的要求?mfc程式的文件類中定義了乙個虛函式settitle,用於設定視窗標題的前半部分,如果只是要修改 無標題 部分,可以過載文件類的該函式。視窗標題的後半部分可以通過setwind...

MFC 如何修改視窗的標題CFrameWnd

來自 一.修改標題 標題分為前後兩部分,前面一部分預設是文件名,後面一部分預設是工程名,比如我新建乙個叫做uitest的工程,那標題就是 uitest1 uitest 後面都用這個工程為例。1.修改前半部分 可以過載文件類的虛函式settile,如下 void ctestdoc settitle l...