kowala's home

kowala's home
這裡是我的學習筆記,陸續增加中。
http://kowala21.blogspot.com

2012-07-27

wxDev C++ 使用 winFrame 視窗+測試鍵盤 wxKeyEvent 之1


轉載請註明出處,謝謝。


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

沒有留言:

張貼留言

請提供您的寶貴意見 ;-)