轉載請註明出處,謝謝。
kowala's home
http://kowala21.blogspot.com
今天就來測試鍵盤,使用 wxDev C++ 來製作 winFrame 視窗,跟 MFC 有一點不一樣,但是都差不多,我們先開一個專案 kbTest,然後為它加入 KeyDown 事件,再來解析按鍵值。
1.我們先開一個專案 kbTest,步驟如下。
成功執行
接著為它加入 KeyDown 事件,按照下面步驟123。
可以看到 wxDevC++ 幫我們建立了 KeyDown 事件,它改變了兩個檔案 kbTestFrm.h 及kbTestFrm.cpp,來看看哪裡被修改了。
kbTestFrm.h
--------------------------------------------------------------------------------------
class kbTestFrm : public wxFrame
{
private:
DECLARE_EVENT_TABLE();
public:
kbTestFrm(wxWindow *parent, wxWindowID id = 1, const wxString &title = wxT("kbTest"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = kbTestFrm_STYLE);
virtual ~kbTestFrm();
void kbTestFrmKeyDown(wxKeyEvent& event);
private:
--------------------------------------------------------------------------------------
這裡新增了事件的宣告
kbTestFrm.cpp
--------------------------------------------------------------------------------------
//Add Custom Events only in the appropriate block.
//Code added in other places will be removed by wxDev-C++
////Event Table Start
BEGIN_EVENT_TABLE(kbTestFrm,wxFrame)
////Manual Code Start
////Manual Code End
EVT_CLOSE(kbTestFrm::OnClose)
EVT_KEY_DOWN(kbTestFrm::kbTestFrmKeyDown)
END_EVENT_TABLE()
////Event Table End
...
/*
* kbTestFrmKeyDown0
*/
void kbTestFrm::kbTestFrmKeyDown(wxKeyEvent& event)
{
// insert your code here
}
--------------------------------------------------------------------------------------
在 kbTestFrm.cpp 修改了兩個地方,先增加了事件表
BEGIN_EVENT_TABLE(kbTestFrm,wxFrame)
...
EVT_KEY_DOWN(kbTestFrm::kbTestFrmKeyDown)
END_EVENT_TABLE()
再來是實作這個事件,我們只需在這裡頭填入代碼,做我們的工作,不用擔心事件怎麼寫,只需專注於 wxKeyEvent 處理即可。
/*
* kbTestFrmKeyDown0
*/
void kbTestFrm::kbTestFrmKeyDown(wxKeyEvent& event)
{
// insert your code here
}
下一篇 wxDev C++ 使用 winFrame 視窗+測試鍵盤 wxKeyEvent 之2
沒有留言:
張貼留言
請提供您的寶貴意見 ;-)