wxWidgets框架例子。 直接粘貼到vc中,運(yùn)行即可。當(dāng)然需要安裝好wxwidgets及其配置好lib和include設(shè)置。 其解釋部分非常詳細(xì),基本上wxwidgets和mfc差不了多少,但是擴(kuò)充性和跨平臺性是大于mfc,同時 也對熟悉ruby下的wxruby和wxpython是非??焖俚?。 #include "wx/wx.h" // 定義應(yīng)用程序類 class MyApp : public wxApp { public: virtual bool OnInit(); }; // 定義主窗口類 class MyFrame : public wxFrame { public: // 主窗口類的構(gòu)造函數(shù) MyFrame(const wxString& title); // 事件處理函數(shù) void OnQuit(wxCommandEvent& event); void OnAbout(wxCommandEvent& event); private: // 聲明事件表 DECLARE_EVENT_TABLE() }; // 有了這一行就可以使用 MyApp& wxGetApp()了 DECLARE_APP(MyApp) // 告訴wxWidgets主應(yīng)用程序是哪個類 IMPLEMENT_APP(MyApp) bool MyApp::OnInit() { // 創(chuàng)建主窗口 MyFrame *frame = new MyFrame(wxT("Minimal wxWidgets App")); // 顯示主窗口 frame->Show(true); return true; } // 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("About Minimal"), wxOK | wxICON_INFORMATION, this); } void MyFrame::OnQuit(wxCommandEvent& event) { Close(); } MyFrame::MyFrame(const wxString& title) : wxFrame(NULL, wxID_ANY, title) { // 設(shè)置窗口圖標(biāo) //SetIcon(wxIcon(mondrian_xpm)); // 創(chuàng)建菜單條 wxMenu *fileMenu = new wxMenu; // 添加“關(guān)于”菜單項(xiàng) wxMenu *helpMenu = new wxMenu; helpMenu->Append(wxID_ABOUT, wxT("&About...\tF1"), wxT("Show about dialog")); fileMenu->Append(wxID_EXIT, wxT("E&xit\tAlt-X"), wxT("Quit this program")); // 將菜單項(xiàng)添加到菜單條中 wxMenuBar *menuBar = new wxMenuBar(); menuBar->Append(fileMenu, wxT("&File")); menuBar->Append(helpMenu, wxT("&Help")); // ...然后將菜單條放置在主窗口上 SetMenuBar(menuBar); // 創(chuàng)建一個狀態(tài)條來讓一切更有趣些。 CreateStatusBar(2); SetStatusText(wxT("歡迎使用wxWidgets!")); } 注意的是: 1.必須是windows框架而不是control程序框架 2.通過向?qū)傻膕tdafx.h 可以通過project/set/ "c/c++"中選擇無編譯頭來去掉 stdafx.h 3.直接拷貝這些lib到工程設(shè)置 wxmsw28d_aui.lib wxmsw28d_html.lib wxmsw28d_xrc.lib wxmsw28d_adv.lib wxmsw28d_core.lib wxbase28d_xml.lib wxbase28d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib 4.附加該lib的位置,或者把以上lib放置到vc6可以找到地方. 5.如果報有LIBCD.lib重復(fù)定義,填到ignore lib中 6.以上都是在vc6環(huán)境測試下通過。 |
|