Windows使用WxWidgets开发界面(c++)环境搭建
一直想学习wxWidgets,之前使用的都是wxPython,现在终于鼓起勇气学习这个了,发现原来是基于vc6.0开发的。所以最好的学习办法就是安装vistual studio 2010,方便学习看代码。wxWidgets里面也有demo。
Similarity to MFC
MFC and wxWidgets macros
| MFC version | wxWidgets version |
|---|---|
BEGIN_MESSAGE_MAP |
BEGIN_EVENT_TABLE |
END_MESSAGE_MAP |
END_EVENT_TABLE |
DECLARE_DYNAMIC |
DECLARE_CLASS |
DECLARE_DYNCREATE |
DECLARE_DYMAMIC_CLASS |
IMPLEMENT_DYNAMIC |
IMPLEMENT_CLASS |
IMPLEMENT_DYNCREATE |
IMPLEMENT_DYNAMIC_CLASS |
IsKindOf(RUNTIME_CLASS(CWindow)) |
IsKindOf(CLASSINFO(wxWindow)) |
MFC and wxWidgets classes
| Miscellaneous Classes | |
| MFC version | wxWidgets version |
|---|---|
CWinApp |
wxApp |
CObject |
wxObject |
CCmdTarget |
wxEvtHandler |
CCommandLineInfo |
wxCmdLineParser |
CMenu |
wxMenu, wMenuBar, wxMenuItem |
CWaitCursor |
wxBusyCursor |
CDataExchange |
wxValidator |
| Window Classes | |
| MFC version | wxWidgets version |
CFrameWnd |
wxFrame |
CMDIFrameWnd |
wxMDIParentFrame |
CMDIChildWnd |
wxMDIChildFrame |
CSplitterWnd |
wxSplitterWindow |
CToolBar |
wxToolBar |
CStatusBar |
wxStatusBar |
CReBar |
wxCoolBar, but see contrib/src/fl and wxAUI, wxDockIt |
CPropertyPage |
wxPanel |
CPropertySheet |
wxNotebook, wxPropertySheetDialog |
| Dialog Classes | |
| MFC version | wxWidgets version |
CDialog |
wxDialog |
CColorDialog |
wxColourDialog |
CFileDialog |
wxFileDialog |
CFindReplaceDialog |
wxFindReplaceDialog |
CFontDialog |
wxFontDialog |
CPageSetupDialog |
wxPageSetupDialog |
CPrintDialog |
wxPrintDialog |
| Control Classes | |
| MFC version | wxWidgets version |
CAnimateCtrl |
wxMediaCtrl, wxAnimationCtrl |
CButton |
wxButton |
CBitmapButton |
wxBitmapButton |
CComboBox |
wxComboBox, wxChoice |
CDateTimeCtrl |
wxDatePickerCtrl |
CEdit |
wxTextCtrl |
CHotKeyCtrl |
None, but see Keybinder |
CListBox, CDragListBox |
wxListBox |
CCheckListBox |
wxCheckListBox |
CListCtrl |
wxListCtrl, wxListView |
CMonthCalCtrl |
wxCalendarCtrl |
CProgressCtrl |
wxGauge |
CReBarCtrl |
None, but see contrib/src/fl and wxAUI, wxDockIt |
CRichEditCtrl |
wxTextCtrl |
CScrollBar |
wxScrollBar |
CSliderCtrl |
wxSlider |
CSpinButtonCtrl |
wxSpinButton, wxSpinCtrl |
CStatic |
wxStaticText, wxStaticLine, wxStaticBox, wxStaticBitmap |
CStatusBarCtrl |
wxStatusBar |
CTabCtrl |
wxTabCtrl |
CToolBarCtrl |
wxToolBar |
CToolTipCtrl |
wxToolTip |
CTreeCtrl |
wxTreeCtrl |
| Graphics Classes | |
| MFC version | wxWidgets version |
CBitmap |
wxBitmap, wxImage, wxIcon, wxCursor |
CBrush |
wxBrush |
CPen |
wxPen |
CFont |
wxFont |
CImageList |
wxImageList, wxIconBundle |
CPalette |
wxPalette |
CRgn |
wxRegion |
CClientDC |
wxClientDC |
CMetaFileDC |
wxMetaFileDC |
CPaintDC |
wxPaintDC |
CWindowDC |
wxWindowDC |
CDC |
wxDC, wxMemoryDC |
| Data Structure Classes | |
| MFC version | wxWidgets version |
CArray, CObArray, CPtrArray |
wxArray |
CStringArray |
wxArrayString |
CDWordArray, CByteArray, CUIntArray |
wxArrayInt |
CList, CPtrList, CObList |
wxList |
CStringList |
wxArrayString, wxStringList |
CMap |
wxHashMap |
CString |
wxString |
CPoint |
wxPoint |
CRect |
wxRect |
CSize |
wxSize |
CTime |
wxDateTime |
CTimeSpan |
wxTimeSpan, wxDateSpan |
COleVariant |
wxVariant |
| Internet Classes | |
| MFC version | wxWidgets version |
CSocket |
wxSocket |
CFtpConnection |
wxFTP |
CHttpConnection |
wxHTTP |
| Document/View Classes | |
| MFC version | wxWidgets version |
CDocument |
wxDocument |
CView |
wxView |
CDocTemplate, CSingleDocTemplate, CMultiDocTemplate |
wxDocTemplate |
| Drag and Drop Classes | |
| MFC version | wxWidgets version |
COleDataSource |
wxDataObject |
COleDropSource |
wxDropSource |
COleDropTarget |
wxDropTarget |
| File Classes | |
| MFC version | wxWidgets version |
CFile |
wxFile, wxFFile, wxTextFile |
CMemFile |
wxMemoryInputStream, wxMemoryOutputStream |
CSocketFile |
wxSocketInputStream, wxSocketOutputStream |
CRecentFileList |
wxFileHistory |
| Multithreading Classes | |
| MFC version | wxWidgets version |
CWinThread |
wxThread |
CCriticalSection |
wxCriticalSection |
CMutex |
wxMutex |
CSemaphore |
wxSemaphore |
1,下载
下载安装文件
http://sourceforge.net/projects/wxwindows/files/
安装文件:
wxWidgets-2.8.12(特别注意下不要使用开发版本,要使用稳定版本)
2,开发环境使用 visual studio 2010
安装IDE参考:
http://blog.csdn.net/freewebsys/article/details/12028265
3,安装wxwdiget(基于源码编译安装)
下载zip文件
打开工程D:/wxWidgets-2.8.12/build/msw/wx.dsw
可以使用exe安装,(相当于解压缩源代码,不是安装)也可以使用zip解压缩,两个都是将源代码放到一个目录,没有啥区别。
然后编译,否则不能使用!!!!!!
wxWidgets使用的是vc6.0开发的,需要转换成vistual studio 2010。(IDE会自动转换的,耐心等待)
转换完成之后直接build就行了。
编译完成没有任何错误信息。说明安装成功。
4,编译demo
在安装后的wxWidgets-2.9.5/samples目录下面有samples.dsw
双击就可以启动visual studio了,同样需要转换成工程。
继续等待。转换完成之后就可以编译了。
里面的demo都可以编译成功,运行如下:
转换完成之后就可以进行编译了。发现编译有4个失败的。不过没有关系大多数成功了。
运行一个demo:
丰富的demo找了几个运行下效果如下:
一个简单的播放器
一个所有组件的demo。比较全。
5,WxWidgets的一个helloworld
/*
* hworld.cpp
* Hello world sample by Robert Roebling
*/ #include "wx/wx.h" class MyApp: public wxApp
{
virtual bool OnInit();
}; class MyFrame: public wxFrame
{
public: MyFrame(const wxString& title,
const wxPoint& pos, const wxSize& size); void OnQuit(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event); DECLARE_EVENT_TABLE()
}; enum
{
ID_Quit = 1,
ID_About, }; BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(ID_Quit, MyFrame::OnQuit)
EVT_MENU(ID_About, MyFrame::OnAbout)
END_EVENT_TABLE() IMPLEMENT_APP(MyApp) bool MyApp::OnInit()
{
MyFrame *frame = new MyFrame( "Hello World",
wxPoint(50,50), wxSize(450,340) );
frame->Show(TRUE);
SetTopWindow(frame);
return TRUE;
} MyFrame::MyFrame(const wxString& title,
const wxPoint& pos, const wxSize& size)
: wxFrame((wxFrame *)NULL, -1, title, pos, size)
{
wxMenu *menuFile = new wxMenu;
menuFile->Append( ID_About, "&About..." );
menuFile->AppendSeparator();
menuFile->Append( ID_Quit, "E&xit" ); wxMenuBar *menuBar = new wxMenuBar;
menuBar->Append( menuFile, "&File" ); SetMenuBar( menuBar ); CreateStatusBar();
SetStatusText( "Welcome to wxWindows!" );
} void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
{
Close(TRUE);
} void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
{ wxMessageBox("This is a wxWindows Hello world sample",
"About Hello World", wxOK | wxICON_INFORMATION, this);
}
其他的继续研究。。。
其他参考:
http://www.cnzui.com/archives/962
http://blog.csdn.net/chinabinlang/article/details/6904143
http://www.codeproject.com/Articles/11515/Introduction-to-wxWidgets
Windows使用WxWidgets开发界面(c++)环境搭建的更多相关文章
- 使用Kotlin开发Android应用 - 环境搭建 (1)
一. 在Android Studio上安装Kotlin插件 按快捷键Command+, -> 在Preferences界面找到Plugins -> 点击Browse repositorie ...
- Tiny4412 开发板 编译环境搭建【转】
本文转载自:http://blog.csdn.net/beijiwei/article/details/51055369 版权声明:本文为博主原创文章,未经博主允许不得转载. /*********** ...
- Qt4.8在Windows下的三种编程环境搭建
Qt4.8在Windows下的三种编程环境搭建 Qt的版本是按照不同的图形系统来划分的,目前分为四个版本:Win32版,适用于Windows平台:X11版,适合于使用了X系统的各种Linux和Unix ...
- Windows下OpenFOAM开发及使用环境配置指南 (2)【转载】
转载自:http://openfoam.blog.sohu.com/158751915.html *************************************************** ...
- Windows下OpenFOAM开发及使用环境配置指南 (1)【转载】
转载自:http://openfoam.blog.sohu.com/158614863.html *************************************************** ...
- 【Qt开发】Qt在Windows下的三种编程环境搭建
从QT官网可以得知其支持的平台.编译器和调试器的信息如图所示: http://qt-project.org/doc/qtcreator-3.0/creator-debugger-engines.htm ...
- Windows 2012 下Redmine安装和环境搭建
公司在过去一年中处于高速发展创业期,对于技术管理和项目管理没有找到一个很好的管理工具,使用过Teanbition+禅道+SVM的集成管理工具,但是明显各工具之间联系性差,断层严重,不能很好的形成团队成 ...
- 前端开发 Vue -1windows环境搭建Vue Node开发环境
解决几个疑问: 想学习下vue.js,我理解的它是一个前端的框架,主要作用是对数据的处理,和juqery类似,所以不太理解为什么要在nodejs中npm install vue呢?在html文件中引入 ...
- Windows Server 2012上PHP运行环境搭建的简易教程(Win08适用)
微软的Windows Server 2012发布后,第一时间进行了简单的试用,非常不错,特写了个简易的PHP环境搭建教程.先来欣赏下Win2012的登录界面吧第一步我们需要安装IIS81.点击任务栏最 ...
随机推荐
- qsort函数的简单实践
#include<stdio.h>#include<stdlib.h>#include<time.h>//利用qsort函数对10个随机数进行排序int compa ...
- ruby.new
ruby.new 输出:print.puts.p 注释 #say hello =begin this is a long comment =end 变量 local: time or _time in ...
- C++程序设计教程学习(1)-第一部分 编程基础
第一章 概述 C++到底难不难学?没有学不会的事情 1.1 程序设计语言 语言 编程语言 人和计算机交流的工具,群体扩大,人人间交流过程描述与信息表达的工具 机器语言,汇编语言,高级语言 1.2 C+ ...
- mysql索引之唯一索引
mysql 的唯一索引一般用于不重复的字段,一般会把表中的id设为唯一索引,创建唯一索引的目的不是为了提高查询速度,而是为了避免数据重复,注意:唯一索引可以有多个,但是列值必须唯一,创建唯一索引使用关 ...
- Crontab 计划任务
有一部分工作,需要某个时间开始,每天执行,每间断一段时间执行.这个时候就需要了crontab.crontab 管理着linux上一些定期的任务.log rotate,logwatch 等等废话不多说来 ...
- Django Meta内部类选项
http://blog.csdn.net/yelbosh/article/details/7545335
- php开发客服系统(持久连接+轮询+反向ajax)
欢迎在php严程序 - php教程学习AJAX教程, 本节课讲解:php开发客服系统(持久连接+轮询+反向ajax) php开发客服系统(下载源码) 用户端(可直接给客户发送消息)客服端(点击用户名. ...
- ShopEx访问提示Incompatible file format: The encoded file has format major ID 2, whereas the Loader expects 4
今天测试了下ShopEx程序,但是ShopEx安装时(程序放在public_html目录下的test目录中)遇到了问题,提示错误如下:Fatal error: Incompatible file fo ...
- iOS开发之多媒体API(1)
iOS开发之多媒体API(1) 播放视频 视频文件介绍 视频格式可以分为适合本地播放的本地影像视频和适合在网络中播放的网络流媒体影像视频两大类.尽管后者在播放的稳定性和播放画面质量上可能没 ...
- GCD 深入理解
GCD 深入理解(一) 虽然 GCD 已经出现过一段时间了,但不是每个人都明了其主要内容.这是可以理解的:并发一直很棘手,而 GCD 是基于 C 的 API ,它们就像一组尖锐的棱角戳进 Object ...