Menü wie Einstellungen bei eMule:



  • Ich möchte so ein Menü erstellen, dass so wie das des eMule ist (wer`s nicht kennt -> [url=http://members.vol.at\captainiglo\eMule-Menue.jpg] Bild [/url]: Man kann da auf das Icon/den Text klicken und kommt dan zum zutreffenden Menüpunkt). eMule ist zwar OpenSource, aber ich werde aus dem Code nicht schlau.
    Weiß jemand wie das gehten könnte??????????

    mfg
    Fink Christoph



  • stelle eine konkrete frage. womit hast du dabei genau ein problem?



  • Auf dem [url=http://members.vol.at\captainiglo\eMule-Menue.jpg] Bild [/url] ist das Menü von eMule.
    Ich möchte das selbe machen, weiß aber nicht wie.
    Bei eMule wird es (glaube ich) mit diesem Code gemacht:

    IMPLEMENT_DYNAMIC(CPreferencesDlg, CPropertySheet)
    CPreferencesDlg::CPreferencesDlg(){
        this->m_psh.dwFlags &= ~PSH_HASHELP;
        m_wndGeneral.m_psp.dwFlags &= ~PSH_HASHELP;
        m_wndConnection.m_psp.dwFlags &= ~PSH_HASHELP;
        m_wndServer.m_psp.dwFlags &= ~PSH_HASHELP;
        m_wndDirectories.m_psp.dwFlags &= ~PSH_HASHELP;
        m_wndFiles.m_psp.dwFlags &= ~PSH_HASHELP;
        m_wndStats.m_psp.dwFlags &= ~PSH_HASHELP;
        m_wndIRC.m_psp.dwFlags &= ~PSH_HASHELP;
        m_wndTweaks.m_psp.dwFlags &= ~PSH_HASHELP;
    
        AddPage(&m_wndGeneral);
        AddPage(&m_wndConnection);
        AddPage(&m_wndServer);
        AddPage(&m_wndDirectories);
        AddPage(&m_wndFiles);
        AddPage(&m_wndNotify);
        AddPage(&m_wndStats);
        AddPage(&m_wndIRC);
        AddPage(&m_wndTweaks);
    
        m_nActiveWnd = 0;
    
        ImageList.Create(16, 16, ILC_COLOR16 | ILC_MASK, 11, 0);
    
        ImageList.Add(theApp.LoadIcon(IDI_PREF_GENERAL));
        ImageList.Add(theApp.LoadIcon(IDI_PREF_CONNECTION));
        ImageList.Add(theApp.LoadIcon(IDI_PREF_SERVER));
        ImageList.Add(theApp.LoadIcon(IDI_PREF_FOLDERS));
        ImageList.Add(theApp.LoadIcon(IDI_PREF_FILES));
        ImageList.Add(theApp.LoadIcon(IDI_PREF_NOTIFICATIONS));
        ImageList.Add(theApp.LoadIcon(IDI_PREF_STATISTICS));
        ImageList.Add(theApp.LoadIcon(IDI_PREF_IRC));
        ImageList.Add(theApp.LoadIcon(IDI_PREFS_TEWAK));
    
    }
    
    BOOL CPreferencesDlg::OnInitDialog()
    {       
        EnableStackedTabs(FALSE);
        BOOL bResult = CPropertySheet::OnInitDialog();
    
        m_listbox.CreateEx(WS_EX_CLIENTEDGE,"Listbox",0,WS_CHILD|WS_VISIBLE|LBS_NOTIFY|WS_TABSTOP|LBS_HASSTRINGS|LBS_OWNERDRAWVARIABLE|WS_BORDER,CRect(0,0,0,0),this,111);
        ::SendMessage(m_listbox.m_hWnd, WM_SETFONT, (WPARAM) ::GetStockObject(DEFAULT_GUI_FONT),0);
        m_groupbox.Create(0,BS_GROUPBOX|WS_CHILD|WS_VISIBLE|BS_FLAT,CRect(0,0,0,0),this,666);
        ::SendMessage(m_groupbox.m_hWnd, WM_SETFONT, (WPARAM) ::GetStockObject(DEFAULT_GUI_FONT),0);
    
        m_listbox.SetImageList(&ImageList);
        SetActivePage(m_nActiveWnd);
        Localize(); 
        m_listbox.SetFocus();
        return bResult;
    }
    

    Die m_wnd* Vareablen sind mit dem jeweiligen Dialog initialisiert.
    ImageList mit CImageList, m_nActiveWnd mit UINT und m_listbox mit CListBoxST.


Anmelden zum Antworten