wxWidget:Catch KEY event of wxStaticBitmap.

wxWidget:Catch KEY event of wxStaticBitmap.


    wxStaticBitmap用于显示一张图片,很好用,但若想截取其键盘事件,确实件麻烦事情。
    尝试了几次,就是抓不到,忽然想起一般这样“简单”的控件是无法设定“焦点”的,即无法调用其类似"setFocus()"函数的。于是翻其基类,果然。。。

     virtual   bool  AcceptsFocus()  const   return false; }

    这里将false改为true就OK了。

    下面是个简单的测试例子,自定义StaticBitmap控件对象。

class  MyStaticBitmap :  public  wxStaticBitmap
{
public:
    MyStaticBitmap(wxWindow 
*parent,
                   wxWindowID id,
                   
const wxGDIImage& label,
                   
const wxPoint& pos = wxDefaultPosition,
                   
const wxSize& size = wxDefaultSize,
                   
long style = 0,
                   
const wxString& name = wxStaticBitmapNameStr);

    
virtual bool AcceptsFocus() const return true; }
public:
    DECLARE_EVENT_TABLE();
    
    
virtual void OnMouse(wxMouseEvent& event);
    
virtual void OnKeyDown(wxKeyEvent& event);

//    virtual WXLRESULT MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);

}
;

你可能感兴趣的:(wxWidget:Catch KEY event of wxStaticBitmap.)