Codejie's C++ Space

Using C++

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);

}
;

posted on 2011-02-18 17:48 codejie 阅读(925) 评论(0)  编辑 收藏 引用 所属分类: C++轮子精神


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


公告

Using C++

导航

统计

留言簿(73)

随笔分类(513)

积分与排名

最新评论

阅读排行榜

评论排行榜