久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

vc修改標題欄的名稱和圖標(1)(轉(zhuǎn)載)

 奧古斯都1 2011-04-16
vc修改標題欄的名稱和圖標
1 單文檔接口(SDI)典型窗口標題的改變

用VC的AppWizard創(chuàng)建一個名為"Exam“的單文檔類型的工程。開始運行時,程序主窗口標題形式如下:

Untitled-Exam

其中"Untitied"為文檔標題,"Exam"為主窗口標題,。當用"File-Open ” 打開"my.exm"文襠以后,文檔標題變?yōu)?my.exm",。

所以程序主窗口標題欄的一般形式為:

文檔標題—主窗口標題

1.1 文檔標題的改變

文檔標題是由工程中相應的文檔類所控制的,所以就可在相應的文檔類中,利用SetTitle()函數(shù)來改變文檔標題,。

例:改變CExamDoc::onNewDocument()函數(shù)為:

BOOL CExamDoc::OnNewDocument()

{

if(!CDocument::OnNewDocument())

return FALSE;

SetTitle("文檔標題");

return TRUE;

}

運行程序,則每次選擇選單中的"文件"的"新建"選項時,標題就變成"文檔標題-Exam ”

1.2 主窗口標題的改變

主窗口的標題默認是工程的文件名,,改變主窗口的標題方法有兩種:

第一種方法:利用ResourceView打開工程的資源,修改String Table中的IDR_MAINFRAME的值。將原來的"Exam\n\nExam\nEXMFile(*.exm)\n.exm\nExam.Document\nExam Document"改為"標題改變示例\n\nExam\nEXM File(*.exm)\n.exm\nExam.Document\nExam Document",。這樣改變后,主窗口標題就變?yōu)?-標題改變示例",。

第二種方法:具體改變方法如下:

改變 CMainFrame的成員函數(shù)PreCreateWindowO為:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT&  cs)

{

m_strTitle="MyTitle" ;

return CFrameWnd::PreCreateWindow(cs);

}

這樣改變后,主窗口標題的形式就為"-MyTitle"。

M_strTile是CFrameWnd的保護成員(要得到m_strTile更詳細的信息,查\msdev\mfc\include\afxwin.h文件),。CMainFrame是CFrameWnd類的派生類,。

在這兩種改變方法中,第二種方法優(yōu)先級高,也就是說,改變了m_strTitle的值后,IDR_MAlNFRAME的值就不起作用,。

1.3去掉文檔標題,,只保留主窗口標題

windows窗口的表現(xiàn)形式由PreCreateWindow函數(shù)的CREATESTRUCT結(jié)構(gòu)類型參數(shù)cs.style決定,其中由FWS_ADDTOTITLE類型決定是否將文檔標題加到窗口標題上的,。所以,,根據(jù)需要我們可以去掉文檔標題,只保留主窗口標題,,方法是:

在MainFrm.cpp文件中的PreCreateWindow中添加下面這句話

cs.style  &=~FWS_ADDTOTITLE;

其中,,“~”是按位取反運算符,它將FWS_ADDTOTITLE的值按位取反后,,再和cs.style 值按位取與,,結(jié)果是將cs.style 值中的FWS_ADDTOTITLE標志位清0.

同樣的,如果要去掉標題欄的其他一些特征,,也可以用類似上面取反再與的方式,。

1.4 適當使用SetWindowText設置窗口標題

SetWindowText是用來設定一些特定窗口的窗口標題的,如列表框,編輯框等,,具體可查看msdn中的詳細介紹,,當然也可以用來設主窗口的窗口標題,,在應用程序的APP文件中的InitInstance函數(shù)中添加下面一句話:

m_pMainWnd->SetWindowText("MyTtile");

這樣窗口標題就只剩下類似主窗口標題的樣子了,。

但本人認為還是遵循“應該用什么做就用什么做”原則,編程要規(guī)范,。

2 對多文擋接口(MDI)類型窗口標題的改變

在MDI類型窗口中,主窗口標題和文檔標題的次序,和SDl類型窗口中次序是不同的,。結(jié)合具體例子說明,用VC的AppWizard創(chuàng)建一個名為"MDITitle"的多文擋類型的工程。創(chuàng)建完工程后,編譯運行該工程,主窗口標題形式如下:"主窗口標題-文檔標題",。

2.l 文擋標題的改變

MDI類型窗口的文檔標題也是由相應的文檔類控制的,。改變方法同SDI類型窗口類似,要改變標題,只要在相應的文檔類中利用SetTitle()函數(shù)來改變文檔標題。

2.2 主窗口標題的改變

MDI類型主窗口標題的改變方法同SDI類型窗口類似,。改變主窗口標題也有兩種方法,通過改變IDR_MAINFRAME或m_strTitle的值就可實現(xiàn)改變主窗口標題的目的,。同樣,改變了m_strTitle值后,IDR_MAINFRAME的值就不起作用。

2.3 子窗口標題的改變

在默認情況下,MFC自動將子窗口標題設為該子窗口所打開的文檔標題,。但實際上,子窗口標題與該子窗口標題所打開的文檔標題可以不一樣,。可做如下改動:

利用ResourceView打開資源,修改String Table中的IDR_MAINFRAME的值為"MyTitle",使得主窗口標題變成"MyTitle",。

并將BOOL CMDlTitleDoc::OnNewDocument()函數(shù)改為:

BOOL CMDlTitleDoc::OnNewDocument()

{

if(!CDocument::OnNewDocument())

return FALSE;

static int count=0;

char message[10];

wsprintf(message,"%s%d","文檔",count);

SetTitle(message);

count++;

return TRUE;

}

通過以上修改,主窗口標題欄被設置為:文檔標題為"上海市盧灣區(qū)業(yè)余大學-文擋0",、"MyTitle-文檔1 ” ……

一下針對子窗口標題的修改作如下改動:

將CChildFrame::PrecreateWindow()函數(shù)改為:

BOOL CChiidFrame::PrecreateWindow(CREATESTRUCT&cs)

cs.style &=~(LONG)FWS_ADDTOTlTLE;

return CMDIChildWnd::PrecreateWindow(cs);

}

要改變窗口類型, 這步工作必須做。常量問FWS_ADDTOTITLE是在文件\msdev\mfc\include\afxwin.h中定義,。

在 CMDlTitleView類中增加OnlnitialUpdate()函數(shù):

void CMDlTitleView::OnlnitiaiUpdate()

{

CView::OninitialUpdate();

Getparent()-〉SetWindowText(GetDocument()-)GetTitle()+ ” -MyTitle ” );

}

這樣,子窗口的標題欄的形式就為"文檔名-MyTitle",。

3、更改圖標

3.1自己制作一個圖標,,命名與原來默認的ico圖標相同的名稱,,放到res文件夾里的,替代它,,就可以了,,運行后就會發(fā)現(xiàn)標題圖片已變成自己設計的圖片了。
        3.2在Resources-Icon-IDR_MAINFRAME上右擊-屬性-文件名改為res\程序名.ico,。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多