欢迎来到天天文库
浏览记录
ID:24784300
大小:437.00 KB
页数:25页
时间:2018-11-16
《c++builder入门6》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1第六章擷取輸入裝置的訊息和事件鍵盤、滑鼠,是我們最常使用的輸入工具。我們是不是常常希望可以再按下某個按鈕後就可以有哪些功能出現呢?沒錯,這就是這一章節的重點,在第四章,我們提到了有關鍵盤、滑鼠、以及RS-232介面的事件及訊息偵測,讓我們更能掌控電腦週邊的硬體。2大綱6-1.偵測鍵盤訊息6-2.偵測滑鼠訊息6-3.使用滑鼠拖放視窗6-4.RS-232的I/O通訊本章習題36-1.偵測鍵盤訊息在很多情況下,我們會需要讓程式知道我們按下了哪些按鈕,有一些BCB的事件就是用在按鍵偵測上。例如OnKeyDown、OnKeyUp、OnKe
2、yPress等,當你按下了按鈕時,OnKeyDown和OnKeyPress這兩個事件會被執行,當放開按鈕時,OnKeyUp將被執行。所以我們在BCB上想要偵測到鍵盤的訊息相當的容易,不需要像在DOS時代一樣的麻煩。在這一小節,我們利用打磚塊這樣的小程式為背景來解釋偵測鍵盤訊息的做法。範例6-1~6-346-1.偵測鍵盤訊息範例6-1:偵測鍵盤訊息void__fastcallTForm1::FormKeyDown(TObject*Sender,WORD&Key,TShiftStateShift){if(Key==37)if(Shap
3、e1->Left>0)Shape1->Left--;if(Key==38)if(Shape1->Top>0)Shape1->Top--;if(Key==39)if((Shape1->Left+Shape1->Width)ClientWidth)Shape1->Left++;if(Key==40)if((Shape1->Top+Shape1->Height)ClientHeight)Shape1->Top++;}56-1.偵測鍵盤訊息範例6-2:偵測鍵盤Key值void__fastcallTForm1
4、::FormKeyDown(TObject*Sender,WORD&Key,TShiftStateShift){Label4->Caption=(int)Key;}void__fastcallTForm1::FormKeyPress(TObject*Sender,char&Key){Label3->Caption=(int)Key;}66-2.偵測滑鼠訊息偵測滑鼠的訊息跟偵測鍵盤的訊息其實原理上大同小異,也是利用BCB所提供的事件去偵測。在這邊我們可以使用OnMouseMove這個事件來偵測目前的滑鼠動作,若是要偵測有沒有按下滑鼠
5、的按鈕或是有沒有滾動滾輪,則可以使用以下這些事件:事件說明OnClick按一下滑鼠左鍵馬上放開所啟動的事件OnDblClick按兩下滑鼠左鍵馬上放開所啟動的事件OnMouseDown按下滑鼠的按鍵所啟動的事件OnMouseMove滑鼠移動所啟動的事件OnMouseUp放開滑鼠按鍵所啟動的事件OnMouseWheel轉動滑鼠滾輪所啟動的事件OnMouseWheelDown向下轉動滑鼠滾輪所啟動的事件OnMouseWheelUp向上轉動滑鼠滾輪所啟動的事件76-2.偵測滑鼠訊息範例6-4:偵測滑鼠訊息void__fastcallTFo
6、rm1::FormMouseMove(TObject*Sender,TShiftStateShift,intX,intY){LabeledEdit1->Text=X;//將滑鼠的X座標顯示出來LabeledEdit2->Text=Y;//將滑鼠的Y座標顯示出來}void__fastcallTForm1::FormMouseWheelDown(TObject*Sender,TShiftStateShift,TPoint&MousePos,bool&Handled){Label3->Caption="剛剛滑鼠滾輪向下轉";}//---
7、------------------------------------------------------------------------void__fastcallTForm1::FormMouseWheelUp(TObject*Sender,TShiftStateShift,TPoint&MousePos,bool&Handled){Label3->Caption="剛剛滑鼠滾輪向上轉";}86-2.偵測滑鼠訊息範例6-4:偵測滑鼠訊息void__fastcallTForm1::FormClick(TObject*Sen
8、der){Label2->Visible=false;Label3->Caption="剛剛您按了滑鼠一下";}//------------------------------------------------------------------
此文档下载收益归作者所有