我用wxwidgets创建一个简单的窗口。我该如何更改边框? 另外如何用右箭头按钮调用销毁功能(OnClose)?
#include <wx/wx.h>
class _Frame: public wxFrame
{
public:
_Frame(wxFrame *frame, const wxString& title);
private:
void OnClose(wxCloseEvent& event);
DECLARE_EVENT_TABLE()
};
BEGIN_EVENT_TABLE(_Frame, wxFrame)
END_EVENT_TABLE()
_Frame::_Frame(wxFrame *frame, const wxString& title)
: wxFrame(frame, -1, title)
{}
void _Frame::OnClose(wxCloseEvent &event)
{
Destroy();
}
class _App : public wxApp
{
public:
virtual bool OnInit();
};
IMPLEMENT_APP(_App);
bool _App::OnInit()
{
_Frame* frame = new _Frame(0L, _("wxWidgets Application Template"));
frame->Show();
return true;
}
答案 0 :(得分:1)
要关闭右箭头窗口,您需要像这样陷阱EVT_CHAR或EVT_KEY_DOWN:
头文件:
void OnChar(wxKeyEvent& event);
源文件:
void _Frame::OnChar(wxKeyEvent& event)
{
if (event.GetKeyCode() == WXK_RIGHT)
{
wxCommandEvent close(wxEVT_CLOSE_WINDOW);
AddPendingEvent(close);
}
event.Skip();
}
BEGIN_EVENT_TABLE(_Frame, wxFrame)
EVT_CHAR(_Frame::OnChar)
END_EVENT_TABLE()
答案 1 :(得分:1)
在创建初始窗口后,更改边框(通过设置不同的wxBORDER_XXX
样式)对所有窗口/所有平台都不起作用,因此如果您确实需要,最好重新创建窗口此