![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxSP9cmT3NGRPhnTzwEMW1mY1RzRapnTtxkb5ckYplTeMZTTINGMShUYfRHelRHLwEzX39GZhh2css2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3Pn5GcukTM3ADOwIjM1IzNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
class MyCustomDialog:public wxDialog
{
public:
MyCustomDialog(const wxString& title);
protected:
void OnClose(wxCommandEvent& event);
void OnCloseWindow(wxCloseEvent& event);
};
MyCustomDialog::MyCustomDialog(const wxString& title)
:wxDialog(NULL,-1,title,wxDefaultPosition,wxDefaultSize)
{
//為較低分辨率的螢幕調整對話框.自動滾屏
wxDialog::EnableLayoutAdaptation(true);
wxStaticBoxSizer* sbSizer = new wxStaticBoxSizer(wxVERTICAL,this,"Colors");
wxRadioButton* rb256 = new wxRadioButton(this,-1,"256 Colors");
wxRadioButton* rbCus = new wxRadioButton(this,-1,"custom");
sbSizer->Add(rb256,1,wxEXPAND|wxALL,5);
sbSizer->Add(rbCus,1,wxEXPAND|wxALL,5);
wxBoxSizer* hbox = new wxBoxSizer(wxHORIZONTAL);
wxButton* btnOK = new wxButton(this,-1,"OK");
wxButton* btnClose = new wxButton(this,-1,"Close");
hbox->Add(btnOK,1,wxALL,5);
hbox->Add(btnClose,1,wxALL,5);
wxBoxSizer *szMain = new wxBoxSizer(wxVERTICAL);
szMain->Add(sbSizer,1,wxEXPAND|wxALL,10);
szMain->Add(hbox,1,wxALIGN_RIGHT,10);
SetSizer(szMain);
Bind(wxEVT_CLOSE_WINDOW,MyCustomDialog::OnCloseWindow,this);
Bind(wxEVT_COMMAND_BUTTON_CLICKED,MyCustomDialog::OnClose,this,btnClose->GetId());
Centre();
ShowModal();
Destroy();
}
void MyCustomDialog::OnClose(wxCommandEvent& event)
{
//生成一個wxCloseEvent
Close(false);
// PostMessage((HWND__ *)this->GetHandle(),WM_CLOSE,0,0);
}
void MyCustomDialog::OnCloseWindow(wxCloseEvent& event)
{
if(event.CanVeto())
{
if ( wxMessageBox(wxT("确定要退出嗎"), wxT("請确認"),
wxICON_QUESTION | wxYES_NO) == wxYES )
{
event.Skip();
}
else
{
event.Veto();
}
}
}