由于SmartWin歲數(shù)尚輕,網(wǎng)路上資料并不多,只能看著文檔摸索。因此要輕松學(xué)習(xí)是相當(dāng)困難的,不過(guò)有個(gè)設(shè)計(jì)GUI的可視化環(huán)境叫Sally的,俺上sourceforge上下載結(jié)果網(wǎng)頁(yè)出錯(cuò),正當(dāng)十分泄氣之時(shí),俺瞥見了WxWigets,也是相當(dāng)好玩的。于是迫不及待的下載下來(lái)安裝上,呵呵。一查網(wǎng)上資料還真挺豐富的,起碼有本權(quán)威一點(diǎn)的指導(dǎo)書《使用WxWigets跨平臺(tái)GUI設(shè)計(jì)》,呵呵,最可喜的是居然俺一直在用的Dev-C++有一個(gè)兄弟Wx Dev-C++,用他來(lái)設(shè)計(jì)是相當(dāng)不錯(cuò)的。

生成的代碼

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();
}


   雖然沒(méi)有smartwin通俗易懂,但面對(duì)如此好用的工具,還是很有吸引力的。原理也類似,生成框架,對(duì)各個(gè)屬性設(shè)置,然后對(duì)基于事件驅(qū)動(dòng)的話,每個(gè)控件都有一個(gè)函數(shù),你可以自己定義動(dòng)作。

Wxwigets的幫助文件查找相應(yīng)的類和函數(shù)是很方便的,所以用他來(lái)做俺的小玩意還是比較合適的。