SmartWin++是一个100%免费的c++ GUI与soap开发库.
可以用来开发基于个人电脑,掌上电脑,windows mobie 或者windows CE系统上的界面应用程序.使用SmartWin++即可以开发开源应用程序,也可以用于开发商业应用程序,得益于SmartWin++基于BSD 许可权.
SmartWin++的初衷是用于替代windows的MFC与WTL库.由于WineLib的出现,现在SmartWin++同样可以用于非windows系统上的开发.
SmartWin++内部大量使用了STL与boost库,对STL完全兼容.
而MFC则是排斥STL的(很难理解MS为什么非得与标准背离).
SmartWin++项目主页:http://smartwin.sourceforge.net/
用SmartWin++开发的Hello程序:
#include "SmartWin.h"- using namespace SmartWin;
- class TestWin : public WidgetFactory< WidgetWindow, TestWin >
{
public:
TestWin(){}
void onPaint(SmartWin::Canvas &c)
{
SmartWin::Rectangle rc(getClientAreaSize());
c.drawText(_T("Hello"), rc, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
}
void isResized(const SmartWin::WidgetSizedEventResult &sz)
{
updateWidget();
}
void Init()
{
this->createWindow();
this->setBounds(100,100,300,300);
this->setText(_T("标题栏"));
this->onPainting(&TestWin::onPaint);
this->onSized(&TestWin::isResized);
}
}; - int SmartWinMain(Application &app)
{
TestWin *t = new TestWin;
t->Init();
return app.run();
}
没有MFC中晦涩的一堆宏,非常干净.运行结果: