• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Welcome to ErranLi's Blog!

              C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              106 Posts :: 1 Stories :: 97 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(12)

            搜索

            •  

            積分與排名

            • 積分 - 177258
            • 排名 - 151

            最新評(píng)論

            閱讀排行榜

            改變VC++應(yīng)用程序窗口的標(biāo)題

            上海盧灣區(qū)業(yè)余大學(xué)????? 邵祖銘

            ? 要:討論基于MFC類(lèi)庫(kù)的Windows應(yīng)用程序設(shè)計(jì)中,應(yīng)用程序各種標(biāo)題的改變方法。

            關(guān)鍵詞:MFC Windows編程標(biāo)題Visual C++

            0 引言

            有一個(gè)演示VC++中的消息處理的單文檔應(yīng)用程序。該程序開(kāi)始運(yùn)行的情況如下:

            窗口中的初始文檔標(biāo)題競(jìng)顯示為Untitled,實(shí)在不盡人意。

            有些時(shí)候, 確實(shí)需要改變自編Windows應(yīng)用程序窗口的標(biāo)題。比如,想編一個(gè)標(biāo)題名為"Communication soft的軟件。雖然在Windows95或Windows NT下,Visual C++(以下簡(jiǎn)稱(chēng)VC)可以生成以"Communication soft為名的工程,但該工程下的C++類(lèi)的名稱(chēng)也要帶上這么多的字符,給編程帶來(lái)不便。可以采用的方法是生成以"CS為名的工程,再把程序的標(biāo)題改成 "Communication Soft。再比如,在多文檔應(yīng)用程序中,希望每個(gè)子窗口的標(biāo)題并不是"主窗口標(biāo)題t、"主窗口標(biāo)題2 ……這種類(lèi)型,而是象"COM1速率"、"LPT并行口"……,即子窗口標(biāo)題與主窗口標(biāo)題無(wú)關(guān)。這時(shí)都需要改變各種窗口標(biāo)題。下面介紹一下改變窗口標(biāo)題所用的方法,所用的開(kāi)發(fā)平臺(tái)是usual C++5.0。

            1 單又擋接口(SDI)典型窗口標(biāo)題的改變

            首先,來(lái)看看Windows SD!類(lèi)型窗口標(biāo)題欄的結(jié)構(gòu)形式。用VC的AppWizard創(chuàng)建一個(gè)名為"Exam9的單文檔類(lèi)型的工程。開(kāi)始運(yùn)行時(shí),程序主窗口標(biāo)題形式如下:

            Untitled-Exam9

            其中"Untitied"為文檔標(biāo)題,"Exam9"為主窗口標(biāo)題。當(dāng)用"File-Open 打開(kāi)"wd1.exm"文襠以后,文檔標(biāo)題變?yōu)?wd1.exm"。

            所以程序主窗口標(biāo)題欄的一般形式為:

            文襠標(biāo)題----主窗口標(biāo)題

            1.1 又檔標(biāo)題的改變

            既然文檔標(biāo)題是由工程中相應(yīng)的文檔類(lèi)所控制的,了解這一點(diǎn),就可在相應(yīng)的文檔類(lèi)中,利用SetTitle()函數(shù)來(lái)改變文檔標(biāo)題。

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

            BOOL CExam9Doc::OnNewDocument()

            {

            if(!CDocument::OnNewDocument())

            return FALSE-

            SetTitle("文檔標(biāo)題");

            return TRUE;

            }

            運(yùn)行程序,則每次選擇選單中的"文件"的"新建"選項(xiàng)時(shí),標(biāo)題就變成"文檔標(biāo)題-Exam9

            1.2 主窗口標(biāo)題的改變

            主窗口的標(biāo)題默認(rèn)是工程的文件名,正如前面Appvvazied生成的Exam9工程執(zhí)行后,標(biāo)題欄的形式總為"文檔標(biāo)題-Exam9。

            改變主窗口的標(biāo)題方法有兩種:

            第一種方法:利用ResourceView打開(kāi)工程的資源,修改String Table中的

            IDR_MAINFRAME的值。將原來(lái)的"Exam9\n\nExam9\nEXMFile(*.exm)\n.exm\nExam9.Document\nExam9 Document"改為"標(biāo)題改變示例

            \n\nExam9\nEXM File(*.exm)\n.exm\nExam9.Document\nExam9 Document"。這樣改變后,主窗口標(biāo)題就變?yōu)?-標(biāo)題改變示例"。第二種方法:具體改變方法如下:

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

            BOOL CMainFrame::PreCreateWindow(CREATESTRUCT&cs)

            {

            m_strTitle="上海市盧灣區(qū)業(yè)余大學(xué) ;

            return CFrameWnd::PreCreateWindow(cs);

            }

            這樣改變后,主窗口標(biāo)題的形式就為"-上海市盧灣區(qū)業(yè)余大學(xué)"。

            M_strTile是CFrameWnd的保護(hù)成員(要得到m_strTile更詳細(xì)的信息,請(qǐng)打開(kāi)\msdev\mfc\include\afxwin.h文件)。CMainFrame則是CFrameWnd類(lèi)的派生類(lèi)。

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

            2 對(duì)多文擋接口(MDI)類(lèi)型窗口標(biāo)題的改變

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

            2.l 文擋標(biāo)題的改變

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

            2.2 主窗口標(biāo)題的改變

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

            2.3 子窗口標(biāo)題的改變

            在默認(rèn)情況下,MFC自動(dòng)將子窗口標(biāo)題設(shè)為該子窗口所打開(kāi)的文檔標(biāo)題。但實(shí)際上,子窗口標(biāo)題與該子窗口標(biāo)題所打開(kāi)的文檔標(biāo)題可以不一樣。可做如下改動(dòng):

            利用ResourceView打開(kāi)資源,修改String Table中的IDR_MAINFRAME的值為"上海市盧灣區(qū)業(yè)余大學(xué)",使得主窗口標(biāo)題變成"上海市盧灣區(qū)業(yè)余大學(xué)"。

            并將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;

            }

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

            一下針對(duì)子窗口標(biāo)題的修改作如下改動(dòng):

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

            BOOL CChiidFrame::PrecreateWindow(CREATESTRUCT&cs)

            cs.style &=~(LONG)FWS_ADDTOTlTLE;

            return CMDIChildWnd::PrecreateWindow(cs);

            }

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

            CMDlTitleView類(lèi)中增加OnlnitialUpdate()函數(shù):

            void CMDlTitleView::OnlnitiaiUpdate()

            {

            CView::OninitialUpdate();

            Getparent()-〉SetWindowText(GetDocument()-)GetTitle()+ -上海盧灣區(qū)業(yè)余大學(xué) );

            }

            這樣,子窗口的標(biāo)題欄的形式就為"文檔名-上海盧灣區(qū)業(yè)余大學(xué)"。

            參考資料:

            [1]Michaei Morrison:Sams Tech Yourself MFC in 24Hours

            [2]David krugiinski:Programming Microsoft Visual C++,FiHh Edition

            [3]Kate Gregory:Special Edition Using Visual C++5

            posted on 2007-10-13 20:02 erran 閱讀(2830) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): MFC
            久久久久人妻一区精品色| 国产亚洲精品美女久久久| 亚洲午夜精品久久久久久app| 久久国产成人午夜AV影院| 免费无码国产欧美久久18| .精品久久久麻豆国产精品| 精品国产一区二区三区久久蜜臀| 日韩欧美亚洲综合久久影院Ds| 日韩人妻无码精品久久免费一| 国产ww久久久久久久久久| 国产毛片欧美毛片久久久| 国产精品午夜久久| 国产亚洲色婷婷久久99精品| 伊人情人综合成人久久网小说| 99精品久久久久中文字幕| 久久亚洲熟女cc98cm| 国产—久久香蕉国产线看观看| 久久亚洲美女精品国产精品| 欧美亚洲国产精品久久| 久久99亚洲综合精品首页| 国内精品久久人妻互换| 久久久久免费精品国产| 久久综合一区二区无码| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 久久国产精品久久久| 久久99精品久久久久子伦| 亚洲精品美女久久777777| 日韩久久久久中文字幕人妻| 久久久久久久综合综合狠狠| 国产成人久久精品二区三区| 日韩欧美亚洲综合久久影院d3| 久久久久成人精品无码中文字幕 | 久久国产高潮流白浆免费观看| 色播久久人人爽人人爽人人片AV| 性做久久久久久免费观看| 久久这里有精品视频| 欧美日韩中文字幕久久久不卡| 久久久久婷婷| 狠狠色婷婷久久综合频道日韩| 精品久久久中文字幕人妻| 亚洲精品乱码久久久久久|