• <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>
            隨筆 - 298  文章 - 377  trackbacks - 0
            <2007年8月>
            2930311234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678

            常用鏈接

            留言簿(34)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊(cè)

            收藏夾

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            位圖按鈕的實(shí)現(xiàn)方法:  
              首先,我們創(chuàng)建一個(gè)基于對(duì)話框的應(yīng)用程序CmyDialog   ;  
              Ι.MFC的CBitmapButton類,這也是最簡(jiǎn)單的功能最強(qiáng)的位圖按鈕。我們可以采取如下的步驟:  
              1. 為按鈕指定唯一的按鈕標(biāo)題(此例子為OK按鈕,這里設(shè)置按鈕標(biāo)題為OK)并選中Ownerdraw屬性,然后在項(xiàng)目中加一些位圖資源,并用名字標(biāo)示這些資源而不要用數(shù)字ID,其ID分別為”OKU”、”OKD”、”OKF”、”OKX”(一定要加雙引號(hào)),分別對(duì)應(yīng)于按鈕的“松開(Up)”、“按下(Down)”、“獲得輸入焦點(diǎn)(focused)”和“禁止(Disable)”狀態(tài)。  
              2. 我們還要在對(duì)話框類中加入CBitmapButton   m_aBmpBtn;數(shù)據(jù)成員。  
              3. 在初始化中為這個(gè)成員調(diào)用:    
                                          …  
              m_aBmpBtn.   AutoLoad(IDOK,this);  
              …  
              點(diǎn)擊編譯按鈕,成功后運(yùn)行程序,哈哈,看看效果,我們的位圖按鈕已經(jīng)建立了。  
              /*如果以上方法不行請(qǐng)檢查你的BITMAP   資源,APPSTUDIO中,"OKU"和   "OKD"   等的資源名稱都是需要用引號(hào)引起來的,   AutoLoad不成功,很可能就是由此產(chǎn)生的。     */  
              改變CANCLE按鈕的標(biāo)題,可以設(shè)置其標(biāo)題為ICON或者BITMAP   :(這里我們演示了bitmap的用法,Icon按鈕讀者可以按照下面的代碼處理)  
              Ⅱ.使用圖標(biāo)制作按鈕  
              1. 打開ICON按鈕的屬性頁,在Style中選中Icon   。  
              2. 在對(duì)話框類的頭文件中定義成員變量(使用ClassWizard加入這個(gè)成員變量)  
              CButton   m_   IconBtn;//對(duì)應(yīng)于圖標(biāo)按鈕  
              3. 創(chuàng)建相應(yīng)的圖標(biāo)或者位圖資源:  
              圖標(biāo)資源:IDI_ICONBUTTON  
              4.在初始化中加入如下代碼:    
              …  
              //對(duì)應(yīng)于圖標(biāo)按鈕  
              HICON   hIcon=AfxGetApp()->LoadIcon(IDI_   ICONBUTTON);  
              m_IconBtn.SetIcon(hIcon);  
              …  
              重新編譯運(yùn)行我們的程序,奇妙的圖像按鈕呈現(xiàn)在我們的眼前了。  
              Ⅲ.使用位圖制作按鈕  
              1. 打開BITMAP按鈕的屬性頁,在Style中選中Bitmap。  
              2. 對(duì)話框類的頭文件中定義成員變量(使用ClassWizard加入這個(gè)成員變量)  
                                          CButton   m_IconBtn;  
              3.創(chuàng)建位圖資源:  
              位圖資源:IDB_BITMAPBUTTON  
              4.在初始化中加入如下代碼:    
              //對(duì)應(yīng)于位圖按鈕  
              …  
              HBITMAP   hBmp=::LoadBitmap(AfxGetInstanceHandle(),  
              MAKEINTRESOURCE(IDB_   BITMAPBUTTON));  
              m_BmpBtn.SetBitmap(hBmp);  
            posted on 2007-08-13 17:26 聶文龍 閱讀(3883) 評(píng)論(1)  編輯 收藏 引用 所屬分類: Visual C++

            FeedBack:
            # re: 在VC中使用位圖按鈕 2007-08-16 17:34 聶文龍
            /*
            //從相對(duì)路徑加載BMP
            void CSkinTab::SetSkin(int nIndex, CString strNormal, CString strOver, CString strDown)
            {
            ASSERT(nIndex < m_nTabCount);

            if (m_pTabBmpNormal[nIndex].m_hObject)
            m_pTabBmpNormal[nIndex].Detach();
            if (m_pTabBmpOver[nIndex].m_hObject)
            m_pTabBmpOver[nIndex].Detach();
            if (m_pTabBmpDown[nIndex].m_hObject)
            m_pTabBmpDown[nIndex].Detach();

            HBITMAP bm = (HBITMAP)::LoadImage(NULL,strNormal,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
            m_pTabBmpNormal[nIndex].Attach(bm);
            bm = (HBITMAP)::LoadImage(NULL,strOver,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
            m_pTabBmpOver[nIndex].Attach(bm);
            bm = (HBITMAP)::LoadImage(NULL,strDown,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
            m_pTabBmpDown[nIndex].Attach(bm);
            }
            //從資源文件加載BMP
            void CSkinTab::SetSkin(int nIndex, UINT nNormalID, UINT nOverID, UINT nDownID)
            {
            ASSERT(nIndex < m_nTabCount);

            if (m_pTabBmpNormal[nIndex].m_hObject)
            m_pTabBmpNormal[nIndex].Detach();
            if (m_pTabBmpOver[nIndex].m_hObject)
            m_pTabBmpOver[nIndex].Detach();
            if (m_pTabBmpDown[nIndex].m_hObject)
            m_pTabBmpDown[nIndex].Detach();

            m_pTabBmpNormal[nIndex].LoadBitmap(nNormalID);
            m_pTabBmpOver[nIndex].LoadBitmap(nOverID);
            m_pTabBmpDown[nIndex].LoadBitmap(nDownID);
            }

            //從相對(duì)路徑加載ICO
            void CSkinTab::SetIcon(int nIndex, CString strIcon)
            {
            ASSERT(nIndex < m_nTabCount);
            m_phIcon[nIndex] = (HICON)::LoadImage(AfxGetApp()->m_hInstance,strIcon,IMAGE_ICON,24,24,LR_LOADFROMFILE);
            }

            //從資源文件加載ICO
            // 1. 打開ICON按鈕的屬性頁,在Style中選中Icon 。
            // 2. 在對(duì)話框類的頭文件中定義成員變量(使用ClassWizard加入這個(gè)成員變量)
            // CButton m_IconBtn;//對(duì)應(yīng)于圖標(biāo)按鈕
            // 3. 創(chuàng)建相應(yīng)的圖標(biāo)或者位圖資源:
            // 圖標(biāo)資源:IDI_ICONBUTTON
            // 4.在初始化中加入如下代碼:
            // …
            // //對(duì)應(yīng)于圖標(biāo)按鈕
            // HICON hIcon=AfxGetApp()->LoadIcon(IDI_ICONBUTTON);
            // m_IconBtn.SetIcon(hIcon);
            */  回復(fù)  更多評(píng)論
              
            欧美丰满熟妇BBB久久久| 亚洲精品无码久久不卡| 奇米影视7777久久精品| 人妻无码αv中文字幕久久 | 久久久久久人妻无码| 噜噜噜色噜噜噜久久| 久久综合给合综合久久| 亚洲AV无码1区2区久久| 久久99中文字幕久久| 热综合一本伊人久久精品| 无码国产69精品久久久久网站| 久久久久久久综合日本亚洲| 思思久久好好热精品国产| 久久99热狠狠色精品一区| 欧美激情一区二区久久久| 国产精自产拍久久久久久蜜| 亚洲精品乱码久久久久久| 久久青青草原亚洲av无码| 99热成人精品热久久669| 久久精品亚洲AV久久久无码| 亚洲欧美精品伊人久久| 久久人人妻人人爽人人爽| 亚洲人成无码网站久久99热国产| AV无码久久久久不卡网站下载 | 精品国产乱码久久久久久浪潮| 亚洲精品无码久久久久sm| 久久伊人五月天论坛| 精品久久久久久久久久中文字幕| 久久精品黄AA片一区二区三区| 亚洲伊人久久综合中文成人网| 精品久久国产一区二区三区香蕉 | 97超级碰碰碰久久久久| 久久久高清免费视频| 久久性精品| 久久天天躁狠狠躁夜夜av浪潮| 国产精品丝袜久久久久久不卡| 国产精品久久久久天天影视| 久久无码AV一区二区三区| 无码任你躁久久久久久久| 久久亚洲精品无码播放| 久久久国产一区二区三区|