請問如何添加Button「按鈕按下」和「按鈕彈起」事件 |
答題得分者是:m8815010
|
Terry6666
一般會員 ![]() ![]() 發表:32 回覆:19 積分:10 註冊:2002-12-20 發送簡訊給我 |
|
soya
一般會員 ![]() ![]() 發表:2 回覆:3 積分:1 註冊:2002-10-09 發送簡訊給我 |
|
m8815010
版主 ![]() ![]() ![]() ![]() ![]() 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: 求助] 請問如何添加Button「按鈕按下」和「按鈕彈起」事件! 我想添加「按鈕按下」和「按鈕彈起」事件,就是當按鈕按下是執行一段命令,但按鈕彈起時再執行另一段命令,請問要如何添加這兩個事件,或者說是函數?按下後就不會自動彈起來..,要等在按一次才會彈起來....謝謝...Terry6666你好 In Unit1.cpp ~~ TForm1 *Form1; bool If_Pressed=false; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { OldButtonWndProc=Button1->WindowProc; Button1->WindowProc=ButtonWndProc; } //--------------------------------------------------------------------------- void __fastcall TForm1::ButtonWndProc(TMessage& Message) { if (Message.Msg==BM_SETSTATE) { if (!If_Pressed) { if (SendMessage(Button1->Handle,BM_GETSTATE,0,0)==104) { OldButtonWndProc(Message); If_Pressed=true; Button1->Caption="按下"; //這裡可以寫按下要做的事,例: Memo1->Lines->Add("我被按下了"); return; } if (SendMessage(Button1->Handle,BM_GETSTATE,0,0)==108) { Message.WParam=0; OldButtonWndProc(Message); //If_Pressed=true; Button1->Caption="彈起"; //這裡可以寫彈起要做的事,例: Memo1->Lines->Add("我被彈起了"); return; } } else { If_Pressed=false; return; } return; } OldButtonWndProc(Message); } ~~反正就是WM_LBUTTONUP、WM_LBUTTONDOWN、BM_SETSTATE等等等這幾個click的事件把它分開就是 |
Terry6666
一般會員 ![]() ![]() 發表:32 回覆:19 積分:10 註冊:2002-12-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |