Имеется код:
#include "wx/wx.h"
class MyApp : public wxApp {
public:
virtual bool OnInit();
};
class MyFrame : public wxFrame {
public:
// Constructor
MyFrame(const wxString& title);
void DrawSimpleShapes();
// Event handlers
void OnQuit(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
private:
// This class handles events
DECLARE_EVENT_TABLE();
};
// Implements MyApp & GetAPP()
DECLARE_APP(MyApp);
// Give wxWidgets the means to create a MyApp object
IMPLEMENT_APP(MyApp);
// Initialize the application
bool MyApp::OnInit() {
MyFrame *frame = new MyFrame(wxT("Minimal wxWidgets App"));
frame->Show(true);
frame->DrawSimpleShapes();
return true;
}
// Event table from MyFrame
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)
EVT_MENU(wxID_EXIT, MyFrame::OnQuit)
END_EVENT_TABLE()
void MyFrame::OnAbout(wxCommandEvent& event) {
wxString msg;
msg.Printf(wxT("Hello and welcome to %s"), wxVERSION_STRING);
wxMessageBox(msg, wxT("AboutMinimal"), wxOK | wxICON_INFORMATION, this);
}
void MyFrame::OnQuit(wxCommandEvent& event) {
Close();
}
MyFrame::MyFrame(const wxString& title) : wxFrame(NULL, wxID_ANY, title) {
wxMenu *fileMenu = new wxMenu;
fileMenu->Append(wxID_EXIT, wxT("E&xit\tAlt-X"), wxT("Quit this program"));
wxMenu *helpMenu = new wxMenu;
helpMenu->Append(wxID_ABOUT, wxT("&About...\tF1"), wxT("Show about dialog"));
wxMenuBar *menuBar = new wxMenuBar();
menuBar->Append(fileMenu, wxT("&File"));
menuBar->Append(helpMenu, wxT("&Help"));
SetMenuBar(menuBar);
CreateStatusBar(2);
SetStatusText(wxT("Welcome to wxWidgets!"));
}
void MyFrame::DrawSimpleShapes() {
wxClientDC dc(this);
// Set line colour to black, fill colour to green
dc.SetPen(wxPen(*wxBLACK, 2, wxSOLID));
dc.SetBrush(wxBrush(*wxGREEN, wxSOLID));
// Draw a point
dc.DrawPoint(5, 5);
wxMessageBox(wxT("Hi"), wxT("Hello"), wxICON_INFORMATION, this);
// Draw a line
dc.DrawLine(10, 10, 100, 100);
}
Рисуется в окне только то что стоит после wxMessageBox в посл. ф-ции. Что стоит перед ней не рисуется (т.е. точка). Если её убрать тогда вообще ничего не рисуется. Что происходит?