MFC bmp彩色工具欄

2021-08-15 13:53:54 字數 2838 閱讀 6051

1.bmp基本概念

(1)色位

色位即色彩位數,指每個畫素點上顏色的資料位數(bit),有色彩深度、色彩精度等等多種稱法,以24位為例,表示r.g.b每原色用8位二進位制資料表示,最多可表達256級濃淡,從而可以再現256x256x256=16777216種顏色。色彩數越多,影象就越生動艷麗。

(2)大小

位圖大小和畫素有關。畫素:上的1個點就是1個畫素。

(3)解析度

解析度通常是指1英吋長度上的畫素(點)數,表示一張上畫素之間排列的疏密程度。

2.mfc工具欄控制項

建立工具欄步驟:

(1)在resource view中插入新*******

(2)在*******上雙擊增加按鈕,更改id為id_button,編譯後在resource.h中即可看到

#define    id_button1   32771

(3)在框架類中新增保護的成員變數 c*******    m_my*******;

(4)在框架類的oncreate中用createex建立工具欄控制項(設定屬性),載入工具欄資源

**如下:

if (!m_my*******.createex(this, tbstyle_flat, ws_child | ws_visible | cbrs_left

| cbrs_gripper | cbrs_tooltips | cbrs_flyby | cbrs_size_dynamic) ||

!m_my*******.load*******(idr_*******1))

m_my*******.enabledocking(cbrs_align_any);

enabledocking(cbrs_align_any);

dockcontrolbar(&m_my*******);

(5)為工具欄按鈕新增訊息響應函式,否則按鈕為灰色

在框架類add window message handle, 選擇id_button,新增訊息響應。

具體新增的**為:1.框架類的宣告中afx_msg void onbutton1();

2.框架類的原始檔中on_command(id_button1, onbutton1)

3.框架類的原始檔中訊息響應函式的實現void cmainframe::onbutton1() {}

效果圖如下:

3.bmp工具欄(開始步驟同上略去)

(1)在resource view中新增bitmap (在此之前先用畫圖工具將bitmap調整至合適大小,如48*48),同樣編譯後可在

resource.h中觀察到#define   idb_bitmap1    132

(2)在框架類中新增成員變數cimagelist  m_imagelist;

(3)初始化imagelist並將它與cimagelist物件聯絡起來

m_imagelist.create(48,48,ilc_color32|ilc_mask,0,0);
ilc_mask的作用是將背景色透明。

(4)載入位圖資源並且新增進影象列表imagelist(注意要用deleteobject釋放之前載入的資源)

cbitmap bmp;

for(int i=0;i<3;++i)

(5)構建乙個******* 按鈕id的陣列

uint narray[3];

for(int k=0;k<3;++i)

(6)設定工具欄按鈕的id,按鈕與點陣圖的大小

m_my*******.setbuttons(narray,3);

m_my*******.setsizes(csize(55,55),csize(48,48));

(7)設定影象

m_my*******.get*******ctrl().setimagelist(&m_imagelist);
效果圖如下:

4.為工具欄按鈕新增滑鼠停留提示資訊

(1)在建立工具欄加上一句**:m_my*******.enabletooltips();

(2)在框架類增加乙個成員變數 cstring str;

(3)在框架類message map中加入 on_notify_ex(ttn_needtext,0,on*******tips)

(4)在框架類新增函式bool on*******tips(uint id, nmhdr * ptttstruct, lresult * presult);

包括標頭檔案中的函式宣告和原始檔的函式實現。該響應函式的實現如下

bool cmainframe::on*******tips( uint id, nmhdr * pnmhdr, lresult * presult )

pttt->lpsztext=str.getbuffer(str.getlength());

pttt->hinst=afxgetresourcehandle();

return true;

}

效果圖如下:

5. 單擊工具欄按鈕後改變

採用了笨辦法,設定了兩個imagelist.

效果圖如下:

MFC bmp彩色工具欄

1.bmp基本概念 1 色位 色位即色彩位數,指每個畫素點上顏色的資料位數 bit 有色彩深度 色彩精度等等多種稱法,以24位為例,表示r.g.b每原色用8位二進位制資料表示,最多可表達256級濃淡,從而可以再現256x256x256 16777216種顏色。色彩數越多,影象就越生動艷麗。2 大小 ...

24位真彩色工具欄

以位圖的形式新增到資源裡 然後在初始化函式裡進行下列操作 m createex this,tbstyle flat,ws child ws visible cbrs top 建立工具欄 m load idr 1 載入資源 cimagelist imgs cbitmap bmp bmp.loadbit...

輕鬆製作24位真彩色工具欄

製作 24位真彩色工具欄,網上的資料可真是多啊。我寫這篇文章前就想放棄寫了,雖然我是做出來,可人家早就做出來了啊。這段時間呢,由於無事可幹,老闆看著我閒著也是閒著,就叫我先做乙個軟體介面出來,抱著學習與工作的心態,就開始做了。看到 acrobat reader 5.1 就想著我也能不能將工具欄做成和...