Мне нужен графический интерфейс для моего проекта в C ++ - PullRequest
2 голосов
/ 01 марта 2011

Мне нужна система с графическим интерфейсом, которая содержит: древовидный список, каждый элемент которого связан с видом, и когда я нажимаю на элемент, открывается вид для следующего шага Я хочу вставить в каждый вид несколько сеток.

Я вижу демонстрационный пример с именем: dockpanelsuite http://sourceforge.net/projects/dockpanelsuite/ есть проводник и мульти документ Я думаю, что я могу изменить это в соответствии с моим требованием. но это в C # и мне нужно что-то в C ++. если это тот же образец в MFC, или я могу объединить их? как насчет производительности и стабильности? спасибо Герцль

Ответы [ 5 ]

8 голосов
/ 01 марта 2011

используйте QT. Он всеобъемлющий, имеет множество учебных пособий в Интернете, является переносимым и находится на C ++.

1 голос
/ 02 марта 2011

Qt лучше, чем MFC по ряду причин, включая:

.> 1. Это с открытым исходным кодом

2. Это кроссплатформенный.Он работает на Linux, некоторых мобильных устройствах и Mac OSX.Это облегчает перенос программ на другие платформы.

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

> 4.Above all Qt is well documented.
0 голосов
/ 18 марта 2011

Вы можете начать создавать новое приложение MFC SDI в мастере приложений, выбрав стиль проекта Visual Studio, вам нужно будет использовать архитектуру Document / View.

С созданным приложением вы сможете работать так, как вам нужно.иметь в левой панели закрепления производный класс ListControl из CMFCListCtrl.

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

в файле реализации вы можете обработать событие click с помощью чего-то подобного ..

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 голосов
/ 01 марта 2011

Win32 ++, а также небольшая библиотека для разработки только для Windows.

0 голосов
/ 01 марта 2011

MFC - слишком большая библиотека. Перейти на win32, если вы хотите только простой графический интерфейс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...