由于SmartWin歲數尚輕,網路上資料并不多,只能看著文檔摸索。因此要輕松學習是相當困難的,不過有個設計GUI的可視化環境叫Sally的,俺上sourceforge上下載結果網頁出錯,正當十分泄氣之時,俺瞥見了WxWigets,也是相當好玩的。于是迫不及待的下載下來安裝上,呵呵。一查網上資料還真挺豐富的,起碼有本權威一點的指導書《使用WxWigets跨平臺GUI設計》,呵呵,最可喜的是居然俺一直在用的Dev-C++有一個兄弟Wx Dev-C++,用他來設計是相當不錯的。

生成的代碼
void HTMLEditorFrm::CreateGUIControls()


{
//Do not add custom code between
//GUI Items Creation Start and GUI Items Creation End
//wxDev-C++ designer will remove them.
//Add the custom code before or after the blocks

/**/////GUI Items Creation Start

WxStatusBar1 = new wxStatusBar(this, ID_WXSTATUSBAR1);

WxSplitterWindow1 = new wxSplitterWindow(this, ID_WXSPLITTERWINDOW1, wxPoint(0,0), wxSize(400,99));
WxSplitterWindow1->SetFont(wxFont(9, wxSWISS, wxNORMAL,wxNORMAL, false, wxT("宋體")));

WxHtmlWindow1 = new wxHtmlWindow(WxSplitterWindow1, ID_WXHTMLWINDOW1, wxPoint(5,5), wxSize(185,89));
WxHtmlWindow1->SetFont(wxFont(9, wxSWISS, wxNORMAL,wxNORMAL, false, wxT("宋體")));

WxMenuBar1 = new wxMenuBar();
wxMenu *ID_MNU_FILE_1011_Mnu_Obj = new wxMenu(0);
ID_MNU_FILE_1011_Mnu_Obj->Append(ID_MNU_OPEN_TCTRL_O_1012, wxT("&Open\tCtrl+O"), wxT(""), wxITEM_NORMAL);
ID_MNU_FILE_1011_Mnu_Obj->Append(ID_MNU_SAVE_1013, wxT("&Save\tCtrl+S"), wxT(""), wxITEM_NORMAL);
ID_MNU_FILE_1011_Mnu_Obj->AppendSeparator();
ID_MNU_FILE_1011_Mnu_Obj->Append(ID_MNU_EXIT_1016, wxT("E&xit"), wxT(""), wxITEM_NORMAL);
WxMenuBar1->Append(ID_MNU_FILE_1011_Mnu_Obj, wxT("&File"));
SetMenuBar(WxMenuBar1);
…………………

/**/////GUI Items Creation End
}

void HTMLEditorFrm::OnClose(wxCloseEvent& event)


{
Destroy();
}


/**//*
* WxMemo1Updated
*/
void HTMLEditorFrm::WxMemo1Updated(wxCommandEvent& event)


{
// insert your code here
}


/**//*
* Mnuexit1016Click
*/
void HTMLEditorFrm::Mnuexit1016Click(wxCommandEvent& event)


{
// insert your code here
Destroy();
}

雖然沒有smartwin通俗易懂,但面對如此好用的工具,還是很有吸引力的。原理也類似,生成框架,對各個屬性設置,然后對基于事件驅動的話,每個控件都有一個函數,你可以自己定義動作。
Wxwigets的幫助文件查找相應的類和函數是很方便的,所以用他來做俺的小玩意還是比較合適的。