开发者

I need a GUI for my project in c++

I need a GUI system that contain: a tree list that each item of list linked to a view and when I click on a Item open the view for next step I want to insert to each view some grids.

I see a demo example named :dockpanelsuite http://sourceforge.net/projects/dockpanelsuite/ there is a explorer and multi document I think that I can change it to my requirment. but this is in C# 开发者_运维问答and I need something in C++. if is same sample in MFC ,or I can combine them? what about performace and stability? thanks herzl


use QT. It's comprehensive, has a lot of tutorials in the web out there, is portable and is in C++.


Qt is better than MFC for a number of reasons including:

. > 1.It is open source

2.It is cross platform. It works on Linux, some mobile devices and Mac OSX. This makes it easier to port programs to other platforms.

> 3.Qt is much easier to use and learn that MFC.

> 4.Above all Qt is well documented.


MFC is too big library. Go for win32 if you only want simple GUI


Win32++ as also a nice little library for windows only development.


You could start creating a new MFC SDI App in the App Wizard pick the Visual Studio Project Style, you will need to use the Document/View architecture.

With the generated App you could work you way to have in the left docking pane a derived ListControl class from CMFCListCtrl.

class CMyListCtrl : public CMFCListCtrl
{
    // Your stuff  goes here....
   public:
    DECLARE_MESSAGE_MAP()
    afx_msg void OnLvnItemchanged(NMHDR *pNMHDR, LRESULT *pResult);
}

in the implementation file you could handle the click event with something like this..

BEGIN_MESSAGE_MAP(CMyListCtrl, CMFCListCtrl)
    ON_NOTIFY_REFLECT(LVN_ITEMCHANGED, &CMyListCtrl::OnLvnItemchanged)

END_MESSAGE_MAP()


void CMyListCtrl::OnLvnItemchanged(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);

    POSITION p = GetFirstSelectedItemPosition();
    int nSelected = GetNextSelectedItem(p);
    if (nSelected != -1)
    {
        CString strText = GetItemText(nSelected, 0);

    // we open the document.....
        CMainFrame *pFrame = static_cast<CMainFrame *> (AfxGetMainWnd());
        CWinApp *app = AfxGetApp();
        app->OpenDocumentFile(strText,FALSE);
        pFrame->ShowJobsProperties ();
    }

    *pResult = 0;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜