MFC指示燈學習

2021-07-26 17:30:19 字數 1272 閱讀 9428

1、在資源編輯的時候選中按鈕的 owner draw 屬性,不需要選擇 bitmap 屬性.

按鈕右鍵-->styles-->owner draw

2、在程式中定義乙個cbitmapbutton成員變數。

屬性新增變數,修改變數型別為cbitmapbutton

3、在資源檢視中新增資源bitmap(**格式要為bmp)

4、初始化oninitdialog函式中新增如下**

bool b = m_btbutton.loadbitmaps(idb_bitmap1,idb_bitmap3);   //載入**

m_btbutton.sizetocontent(); //使按鈕適應大小

5、過載pretranslatemessage函式,使得按鍵控制顯示**

bool cleddlg::pretranslatemessage(msg *pmsg)

break;

case 'd':

if (::getkeystate('d')<0)

break;

}} return cdialog::pretranslatemessage(pmsg);

}

執行之後:

按下『a』和『d』後

實現過程中解決問題:

1.**格式問題。之前png格式編譯總是不通過,選用bmp格式**解決問題。

2.msg類

typedef struct tagmsg 

msg

getkeystate是指定虛擬鍵的狀態的乙個函式。

該函式檢取指定虛擬鍵的狀態。該狀態指定此鍵是up狀態,down狀態,還是被觸發的(開關每次按下此鍵時進行切換)。

例子:::getkeystate(vk_shift) > 0 沒按下

::getkeystate(vk_shift) < 0被按下

返回值給出了給定虛擬鍵的狀態,狀態如下:

若高序位為1,則鍵處於down狀態,否則為up狀態。

若低序位為1,則鍵被觸發。例如caps lock鍵,被找開時將被觸發。若低序位置為0,則鍵被關閉,且不被觸發。觸發鍵在鍵盤上的指示燈,當鍵被觸發時即亮,鍵不被觸發時即滅。
備註:當給定執行緒從它的

訊息佇列中讀鍵訊息時,該函式返回的鍵狀態發生改變。該狀態並不反映與硬體相關的中斷級的狀態。使用

getasynckeystate可獲取這一資訊。 4.

invalidate();//重新繪製呼叫者本身

參考文件:

mfc指示燈報警顯示 汽車儀表指示燈全方位解讀含義

汽車儀表指示燈解讀 汽車儀表指示燈解讀 偶爾帶孩子開車出門,新手的我也不懂汽車儀表上的指示燈,趕緊收集一些備著吧。不過大家看到這6種燈亮,一定要停車 發動機故障燈 發動機故障燈是顯示發動機的工作狀態,通常是黃色或紅色,一旦發動機故障燈一直亮起,大多數情況都不會自動消失的。剎車系統故障燈 剎車系統對行...

讓scroll lock指示燈閃爍

scroll lock 指示燈 閃爍,可以起提醒作用,沒人會用tty19吧?bin bash email jyhln 163.com msn jyhln msn.com oicq 2899589 if 1 then echo usage 0 time exit 0 fin 1 sleep 1 let...

LED指示燈的使用

在設計一款dsp的板子時,核心需要使用到1.26v的電壓,設計電路時想,為了方便確定1.26v供電是否正確,在1.26v處接了個led電源指示燈。板子回來焊上,發現led怎麼都不亮,用萬用表測電壓正確 1.26v非常準。為什麼燈就是不亮呢?試著把限流電阻改到非常小了,還是不亮,問題出在哪呢?想到le...