• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 隨心所欲改變窗口的圖標

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    蘇州市西塘南巷 沈建新 ---- 在使用VC++5.0 開發 應用程序時,我們可能需要改變框架窗口(包括主框架窗口和 子框架窗口)的圖標,而不是使用VC為你已經準備好了的、很難看的那個圖標。但筆者 參考了很多書籍、資料,卻沒有找到任何敘述如何去改變窗口圖標的
    蘇州市西塘南巷 沈建新

    ---- 在使用VC++5.0開發應用程序時,我們可能需要改變框架窗口(包括主框架窗口和
    子框架窗口)的圖標,而不是使用VC為你已經準備好了的、很難看的那個圖標。但筆者
    參考了很多書籍、資料,卻沒有找到任何敘述如何去改變窗口圖標的方法的文章(或許
    很多人認為這根本就不值得一提),讓很多初學者無從著手。筆者經過實踐,發現了以
    下兩個改變框架窗口圖標的方法。使用方法一可以在編寫應用程序時指定框架窗口的圖
    標,使用方法二可以在程序運行時根據需要動態地改變窗口的圖標。如果把這兩個方法
    結合起來,就可以隨心所欲改變窗口的圖標。
    ---- 方法一、在編程時指定窗口的圖標
    ---- 一、如果是指定主框架窗口的圖標,其步驟如下:
    創建或打開工程Icon(以下都以工程名為Icon為例)。
    單擊Workspace窗口的ResourceView標簽,選中資源ID為IDR_MAINFRAME圖標資源,然后
    按Delete鍵把它刪除掉。注意:一定要把它刪除才行。
    從Developer Studio的Insert菜單中選擇Resource,然后選擇Icon,新建(New)一個新
    的圖標或導入(Import)一個已有的圖標。
    把新圖標的資源ID改為AFX_IDI_STD_MDIFRAME(如果是MDI應用程序)或改為
    AFX_IDI_STD_FRAME(如果是SDI應用程序)。AFX_IDI_STD_MDIFRAME和
    AFX_IDI_STD_FRAME這兩個資源ID是MFC中預定義了的。
    編譯并運行程序,可以發現主框架窗口的圖標就是你指定的圖標。
    ---- 二、如果是指定MDI子框架窗口的圖標,其步驟與上述相似。
    同上。創建或打開工程Icon。
    刪除資源ID為IDR_ICONTYPE(在你的工程中應該是IDR_XXXTYPE,其中XXX為你的工程
    名)圖標資源。同樣要注意的是:一定要把它刪除才行。
    同上。新建(New)一個新的圖標或導入(Import)一個已有的圖標。
    把新圖標的資源ID改為IDR_ICONTYPE(即步驟2中刪除的資源ID)。
    編譯并運行程序,可以發現子框架窗口的圖標就是你指定的圖標。
    ---- 用這個方法,可以在多視圖類MDI應用程序中為不同視圖的子框架窗口指定不同的
    圖標。
    ---- 方法二、在程序運行時動態地改變窗口的圖標
    ---- 在程序運行時動態地改變框架窗口圖標的原理是使用函數
    ---- CWnd::SendMessage()向窗口發送WM_SETICON消息。其方法是:
    HICON hIcon=AfxGetApp()- >LoadIcon(IDI_ICON1);
    ASSERT(hIcon);
    AfxGetMainWnd()- >SendMessage(WM_SETICON,TRUE,(LPARAM)hIcon);
    ---- 以上敘述中的AfxGetMainWnd()是獲得主框架窗口的窗口句柄,所以改變的是主框
    架窗口(包括MDI和SDI)的圖標,用同樣的方法略作改動就可以改變MDI應用程序子框架
    窗口的圖標。
    ---- 下面舉一個實例來說明如何改變主框架窗口的圖標,步驟如下:
    ---- 1.創建或打開工程Icon。
    ---- 2. 從Developer Studio的Insert菜單中選擇Ressource,然后選擇Icon,新建
    (New)或導入(Import)兩個圖標,并資源ID分別改為IDI_ICON_GREEN,
    IDI_ICON_RED。
    ---- 3.單擊Workspace窗口的ResourceView標簽,對IDR_MAINFRAME菜單資源進行編輯。
    在View菜單中加入一個分隔符和Green Icon、Red Icon兩個菜單項。其資源ID分別改為
    ID_VIEW_GREEN和ID_VIEW_RED。
    ---- 4.為主窗口添加如下消息處理函數:
    // CMainFrame message handlers
    void CMainFrame::OnViewGreen()
    {
    // TODO: Add your command handler code here
    HICON hIcon=AfxGetApp()- >LoadIcon(IDI_ICON_GREEN);
    ASSERT(hIcon);
    SendMessage(WM_SETICON,TRUE,(LPARAM)hIcon);
    //因為是在類CmainFrame中,所以不需要用
    AfxGetMainWnd()- >SendMessage(WM_SETICON,TRUE,(LPARAM)hIcon);
    }
    void CMainFrame::OnViewRed()
    {
    // TODO: Add your command handler code here
    HICON hIcon=AfxGetApp()- >LoadIcon(IDI_ICON_RED);
    ASSERT(hIcon);
    SendMessage(WM_SETICON,TRUE,(LPARAM)hIcon);
    }
    ---- 5. 最后編譯并執行程序,執行View菜單的Green Icon和Red Icon,可以看到成功
    得改變主框架窗口的圖標。
    ---- 以上實例是在程序運行時改變主框架窗口的圖標,可以用同樣的方法改變MDI程序
    的子框架窗口的圖標,有興趣的朋友可以一試。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>