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

分享

VS2010 更改MFC標題及標題欄圖標和exe圖標

 erbiaoge 2014-07-03


在VS2010下新建一個MFC的多文檔應用程序,,程序默認的標題是“文檔名-工程名”。圖標默認的是寫著MFC的三個方塊,。但在很多軟件中都不是使用的默認設置,,開發(fā)者們都將標題和圖標改過,以符合項目要求,,而且直觀好看,。

一 修改標題

(一)基于MFC對話框

*對話框標題欄內容為靜態(tài)

MFC對話框型程序動態(tài)修改自身標題的方法有以下幾種:

1. 直接在資源視圖-Dialog-屬性-外觀的“Caption”中修改。

2. 最簡單的是用對話框類自身的類函數(shù):

BOOL CMyDlg::OnInitDialog()
{
   CDialog::OnInitDialog();

   ......

   SetWindowText("My Title");

   return TRUE;  // return TRUE  unless you set the focus to a control

}

3. 其次還可以用API函數(shù)來完成:

 ::SetWindowText(m_hWnd, "My Title");  或  ::SetWindowText(GetSafeHwnd(), "My Title"); 

 m_hWnd 也是MFC對話框類的成員變量,,可直接引用,,GetSafeHwnd()的作用與其一樣。

*對話框標題欄內容為動態(tài)生成的

在對應對話框的初始化函數(shù)OnInitDialog()中添加以下代碼:

CString title;
title.Format("%d",Id);//在標題欄動態(tài)顯示Id的值this->SetWindowText(title);

(二)基于MFC單,、多文檔

標題分為前后兩部分,,前面一部分默認是文檔名,后面一部分默認是工程名,,比如我新建一個叫做UITEST的工程,,那標題就是“UITEST1-UITEST”。后面都用這個工程為例,。

1.修改前半部分:

可以重載文檔類的虛函數(shù)SetTile,,如下

void CTestDoc::SetTitle(LPCTSTR lpszTitle)

{

   CDocument::SetTitle(L"你的標題");

}

也可以在UITESTDoc.app中,在BOOL CUITESTDoc::OnNewDocument()函數(shù)中添加SetTitle(L"你的標題")

2.修改后半部分:

改資源字符串

在資源視圖的String Table中找到IDR_MAINFRAME,,將其標題改為你想要的標題

3.去掉-

去掉標題中間的-,,只顯示后面的標題,

方法1:通過重載CFramWnd類的OnUpdateFrameTitle函數(shù)

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函數(shù)中修改窗口風格

BOOL CMainFrame.:PreCreateWindow(CREATESTRUCT& cs)

{

          cs.style &= ~(LONG) FWS_ADDTOTITLE;

          return CFrameWnd::PreCreateWindow(cs);

}

使用此方法,,窗口的標題只顯示IDR_MAINFRAME字符串中第一個\n之前的部分

 

二 修改圖標

(一)VS2010程序文件夾下生成的exe文件圖標

創(chuàng)建一個新工程,,可以什么都不加,。打開.rc,  創(chuàng)建或打開Icon資源(以下都以Icon為例),。    
單擊工程窗口的資源視圖標簽,,選中資源ID為IDR_MAINFRAME圖標資源,,然后按Delete鍵把它刪除掉,當然也可以不刪,,具體后面會講到,。    
從資源菜單中選擇Resource,然后選擇Icon,,添加資源,,選中Icon類型,點擊導入,,此時會叫你選擇本地的圖片,,記住必須選擇.ioc格式的圖片,否則導入失敗,。    
把新圖標的資源ID改為IDI_ICON(也可以不改),。 具體做法如下: 

有一點很重要,你改知道就是 打開Header Files下的Resource.h,,找到Icon下的圖標,,系統(tǒng)默認是從128開始的,

#define IDR_MAINFRAME               128

#define IDR_ICONTETYPE              129(單/多文檔程序的文檔圖標)

#define IDI_ICON1                        130
#define IDI_ICON2                        131

VS2010程序文件夾下生成的exe文件圖標是用Icon下幾個圖標中value值最小的,,順序為IDR_MAINFRAME,、IDR_ICONTETYPE、新加 的,,所以想更改生成的exe文件圖標,,只要保證圖標的value值是Icon下幾個圖標中最小的就可以了

(1)導入自己的.ioc圖片,并在Resource.h中,,將自己加的icon資源Value改為最小,,如下,因此不一定要刪除IDR_MAINFRAME

     #define IDR_MAINFRAME                   129
    #define IDI_ICON1                               128(自己添加的icon) 

(2)然后編譯運行,,找到你的debug目錄,,你將看到圖標已經(jīng)更改的.exe執(zhí)行文件,這種方法可以將任何你喜歡的圖片做成.exe文件圖標

 

(二)修改運行程序標題欄圖標

1. 基于MFC對話框

(1)如上操作,,導入自己喜愛的ico圖片,,編輯新加icon的ID,,比如我新加的Icon資源ID為 IDI_ICON1

(2)基于對話框的程序,,在構造函數(shù)中有一句

  m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

  此時把IDR_MAINFRAME改為我的IDI_ICON1的圖標名,。

(3)編譯運行你看到自己喜愛的圖片出現(xiàn)在標題欄的位置了。

 

2. 基于MFC單,、多文檔

替換默認的MFC圖標,,先要自己畫一個符合格式要求的位圖或從外部導入一個圖標,修改其屬性名,,假設為IDI_IDI1,。在MainFrm的OnCreate()里添加如下代碼:

HICON m_hIcon;

m_hIcon = AfxGetApp()->LoadIcon(IDI_IDI1);

SetIcon(m_hIcon, TRUE); // Set big iconSetIcon(m_hIcon, FALSE); // Set small icon

其中big icon是32×32,small icon是16×16

 

(三).ico格式圖片制作

http://ico./

上面的網(wǎng)址可以將jpg .jpeg .gif .png  轉換為.ioc 之后的操作你該會的,!

 

整合以下幾篇文章:http://blog.csdn.net/link_/article/details/7261801

http://www.cnblogs.com/Romi/archive/2012/02/14/2351799.html

 http://734507691.blog.163.com/blog/static/1164804662010112383027130/

 http://blog.sina.com.cn/s/blog_6a1cdb3f0101hbsj.html

 

附:IDR_MAINFRAME字符串資源

聲明這個篇文章來自:http://hi.baidu.com/flyeagle88/blog/item/c1aa0c0e07862de037d1226c.html 感謝

打開程序資源文件(*.rc),,展開“String Table”,找到ID為IDR_MAINFRAME的字符串資源,,可看見它由“\n”字符分隔的7個字串,,這可以從MFC生成向導第4步對話框上看到。對于IDR_MAINFRAME資源,,可以利用CDocTemplate::GetDocString來獲取各個字串,,也可以根據(jù)每個子串定義設置它:

值說明

CDocTemplate::windowTitle

主窗口標題欄上的字符串,僅在SDI程序出現(xiàn),,MDI程序將以IDR_MAINFRAME字符串為默認值,。

CDocTemplate::docName

缺省文檔的名稱。缺省是無標題,。

CDocTemplate::fileNewName

文檔類型的名稱,。如果應用程序支持多種類型的文檔,此字符串將顯示在"File/New"對話框中,。如果沒有指定,,就不能夠在"File/New"對話框處理這種文件。

CDocTemplate::filterName

文檔類型的描述和一個適用于此類型的通配符過濾器,。這個字符串將出現(xiàn)在“File/Open”對話框中的文件類型列表框中,。要和CDocTemplate::filterExt一起使用。

CDocTemplate::filterExt

文檔的擴展名,。如果沒有指定,,就不能夠在“File/Open”對話框中處理這種文檔。要和CDocTemplate::filterName一起使用,。

CDocTemplate::regFileTypeId

如果你以::RegisterShellFileTypes向系統(tǒng)的注冊表注冊文件類型,,此值會出現(xiàn)在HKEY_CLASSES_ROOT之下成為其子項,并僅供Windows內部使用,。如果沒有指定,,這種文件類型就無法注冊,。

CDocTemplate::regFileTypeName

這也是存儲在注冊表中的文件類型名稱。它會顯示于程序中用以訪問注冊表的對話框內,。

因此,,對于IDR_MAINFRAME資源標題(Caption)為:

Hello\nNo Name\nGraphic\nText Files(*.txt)\n.txt\nGraphic.Document\nGraphic.Document

來說,對應下圖:

 

【文件\新建】和【文件\打開】菜單項的命令響應函數(shù)都是CWinApp類提供的,。CWinApp類有一個成員變量:m_pDocManager,,它指向CDocManager對象的指針,即CWinApp負責管理文檔管理器,,而后者有一個文檔模板指針鏈表:m_templateList,,用來保存文檔模板指針,即文檔管理器負責管理文檔模板,,而后者又用來管理文檔類,、框架類和視類,一起為文檔服務,。

 


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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多