http://www.wxwidgets.org/downloads/各个版本的下载,如果有兴趣自己编译可以尝试
http://sourceforge.net/projects/wxwindows/files/2.9.4/binaries/ 已经编译好的2.9.4版本,包括debug和release版本
既然有已经下载好的,直接拿来用就行了
wxWidgets-2.9.4_Headers.7z,头文件是必须要的,解压到某个目录 .../wxWidgets-2.9.4-vc100/
wxMSW-2.9.4_vc100_Dev.7z 解压同一个目录,这里面包含了wx/setup.h头文件,链接库,动态库,也分release和debug库(带d)
头文件和库准备好后,就可以开始配置VS2010环境了
一、新建工程New Project
建议选择Win32 Console Applictaion,路径工程名什么的自选
Application type应用程序类型可以选择 Windows application或console application(新建之后可以再更改设置)
选择空工程就行了
二、配置头文件
此时是一个空工程,没有什么头文件和源文件
一般配置头文件就是选择工程属性(Properties),在空工程的情况下Configuration Properties下面没有C/C++这一项
只需要新加一个源文件,Add NewItem 比如hello_wxWidgets.cpp,再进入属性就会出现C/C++这一项了
Additional Include Directories(添加头文件目录),注意要添加两个地方
一个就是wxWidgets-2.9.4_Headers.7z解压后的.../wxWidgets-2.9.4-vc100/include目录,这里面包含了wxWidgets所包含的头文件
另一个就是wxWidgets-2.9.4/lib/vc100_dll下的mswu(或mwsud),里面包含了wx/setup.h头文件。在wxwidgets-2.9.4\include\wx\platform.h中引用了
Prepocesser(预编译项)
// wxWidgets "Hello world" Program // For compilers that support precompilation, includes "wx/wx.h". #include <wx/wxprec.h> #ifndef WX_PRECOMP #include <wx/wx.h> #endif class MyApp: public wxApp { public: virtual bool OnInit(); }; class MyFrame: public wxFrame { public: MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size); private: void OnHello(wxCommandEvent& event); void OnExit(wxCommandEvent& event); void OnAbout(wxCommandEvent& event); wxDECLARE_EVENT_TABLE(); }; enum { ID_Hello = 1 }; wxBEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(ID_Hello, MyFrame::OnHello) EVT_MENU(wxID_EXIT, MyFrame::OnExit) EVT_MENU(wxID_ABOUT, MyFrame::OnAbout) wxEND_EVENT_TABLE() wxIMPLEMENT_APP(MyApp); bool MyApp::OnInit() { MyFrame *frame = new MyFrame( "Hello World", wxPoint(50, 50), wxSize(450, 340) ); frame->Show( true ); return true; } MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) : wxFrame(NULL, wxID_ANY, title, pos, size) { wxMenu *menuFile = new wxMenu; menuFile->Append(ID_Hello, "&Hello...\tCtrl-H", "Help string shown in status bar for this menu item"); menuFile->AppendSeparator(); menuFile->Append(wxID_EXIT); wxMenu *menuHelp = new wxMenu; menuHelp->Append(wxID_ABOUT); wxMenuBar *menuBar = new wxMenuBar; menuBar->Append( menuFile, "&File" ); menuBar->Append( menuHelp, "&Help" ); SetMenuBar( menuBar ); CreateStatusBar(); SetStatusText( "Welcome to wxWidgets!" ); } void MyFrame::OnExit(wxCommandEvent& event) { Close( true ); } void MyFrame::OnAbout(wxCommandEvent& event) { wxMessageBox( "This is a wxWidgets' Hello world sample", "About Hello World", wxOK | wxICON_INFORMATION ); } void MyFrame::OnHello(wxCommandEvent& event) { wxLogMessage("Hello world from wxWidgets!"); }
wxIMPLEMENT_APP(MyApp); #define wxIMPLEMENT_APP(appname) \ wxIMPLEMENT_WX_THEME_SUPPORT \ wxIMPLEMENT_APP_NO_THEMES(appname)
#define wxIMPLEMENT_APP_CONSOLE(appname) \ wxIMPLEMENT_WXWIN_MAIN_CONSOLE \ wxIMPLEMENT_APP_NO_MAIN(appname)
#define IMPLEMENT_APP(app) wxIMPLEMENT_APP(app);
#define IMPLEMENT_APP_CONSOLE(app) wxIMPLEMENT_APP_CONSOLE(app);
int WINAPI _tWinMain( HINSTANCE hInstanceExe, HINSTANCE, PTSTR pszCmdLine, int nCmdShow); int _tmain(int argc, TCHAR *argv[], TCHAR *envp[]);选择Not Set,指定IMPLEMENT_APP或IMPLEMENT_APP_CONSOLE就可以了。