MFC CBitmapButton 文字寫入

2021-07-25 20:10:45 字數 2200 閱讀 6317

在class view的工程目錄下,新增類cimgbutton,繼承自cbitmapbutton。選擇cimgbutton類的property,過載drawitem(不是message下的wm_drawitem,其響應函式ondrawitem不會被呼叫到。為什麼?),實現在bitmap上寫入文字的功能。使用時,1)在dialog中拖入乙個button,設定ownerdraw。2)裝載需要的點陣圖資源。3)對話方塊標頭檔案中 #include 「imgbutton.h」 cimgbutton m_cimgbtn; 4)對話方塊cpp中 m_cimgbtn.subclassdlgitem(idc_button5, this); m_cimgbtn.loadbitmaps(idb_btnlongu, idb_btnlongd, idb_btnlongu); m_cimgbtn.sizetocontent(); m_cimgbtn.settextcolor(rgb(0,0,0)); 完成。

按鈕一般有四種狀態:up/normal, down/select, focus(意為首選,可能為畫面中只有乙個按鈕,或上次選擇的就是此按鈕。對於windows來說,就是button上有乙個虛線框的情況), disable。第一種是必須有的,後三種可選。因此,至少需要準備button的一張。cbitmapbutton的使用中,裝載按鈕有兩種方法:autoload()和loadbitmaps()。

autoload()法,該法將四種狀態下的自動裝載到bitmapbutton中。1)在dialog中拖入button控制項,設定ownerdraw為true,caption為myimage(例),id為idc_myimage。2)將四張新增到bitmap資源,命名為」myimageu」, 「myimaged」, 「myimagef」, 「myimagex」,對應button四種狀態,名稱中需要加入分號。3)在標頭檔案中手動新增物件cbitmapbutton m_cbtn; 4)在對話方塊的oninitdialog()中新增m_cbtn.autoload(idc_myimage, this);完成

loadbitmaps()法。該法手動指定button每種狀態的,優點是可以不提供不需要的狀態,如focus,且多個button可以使用同樣的,在資源中只需裝載一次,節省空間。1)在dialog中拖入button控制項,設定ownerdraw為true,id任意(例:idc_buttno4)。2)將所需新增到bitmap資源中,id任意(例:idb_btnu,idb_b***)。3)在標頭檔案中手動新增物件cbitmapbutton m_cbtn; 4)在oninitdialog()中新增 m_cbtn.subclassdlgitem(idc_button4, this); //關聯按鈕和對話方塊 m_cbtn.loadbitmaps(idb_btnu, idb_b***); m_cbtn.sizetocontent();//調整大小. 完成

下一步就是繼承cbitmapbutton類,過載drawitem實現文字寫入。

cimgbutton**:

1.#pragma once

2.3.

4.// cimgbutton

5.6.class cimgbutton : public cbitmapbutton

7.;

24.25.

26.27.

28.// imgbutton.cpp : implementation file

29.//

30.31.#include 「stdafx.h」

32.#include 「win32test.h」

33.#include 「imgbutton.h」

34.35.

36.// cimgbutton

37.38.implement_dynamic(cimgbutton, cbitmapbutton)

39.40.cimgbutton::cimgbutton()

41.

44.45.cimgbutton::~cimgbutton()

46.

48.49.

50.begin_message_map(cimgbutton, cbitmapbutton)

51.end_message_map()

52.53.

54.void cimgbutton::settextcolor(colorref crcolor)

55.

58.59.void cimgbutton::drawitem(lpdrawitemstruct lpdrawitemstruct)

60.

寫文字檔案

textoper 文字檔案操作類 public class textoper 新建乙個檔案 public bool createfile string strpath,string strname else file.create strpath strname return true catch ...

以前寫的文字 隨感

你走了 你走了,離我而去,只能模糊地看著你消失的背影,我悵然若失地抱頭思憶著過去有你的歲月,是溫馨 是浪漫。於是我抬腿想去把你追回,你卻消失在視線的盡頭。留下獨自的我,久久地矗立在風中,把淚揮灑,綿綿的絲於風中惆悵,恨自己沒有把你留住 恨自己太笨 太傻 只是你的心,我卻永遠沒有猜透,或許是不敢猜透吧...

PHP寫文字日誌

寫檔案 param string file 檔案路徑 param string str 寫入內容 param char mode 寫入模式 function writefile file,str,mode w else 擴充套件應用,比如記錄每次請求的url內容 function writegetu...