TabControl mit ICON oder BITMAP ??? Bitte anschauen
-
Hallo :xmas1:
wie kann ich ein Icon oder Bitmap in mein Register (CTabControl) setzen?
Schaut mal auf meinem Code....geht so leider nicht

BOOL CMyDlg::OnInitDialog() { CDialog::OnInitDialog(); // // ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // // SetIcon(m_hIcon, TRUE); // SetIcon(m_hIcon, FALSE); // //######################################################### CMyApp *pApp; pApp=(CMyApp*)AfxGetApp(); m_imageTab.Create(16,16,0,0,1); m_imageTab.Add(pApp->LoadIcon(IDI_ICON1)); CTabCtrl *pTab =(CTabCtrl*) GetDlgItem(IDC_TAB1); pTab->SetImageList(&m_imageTab); TC_ITEM Register; Register.mask = TCIF_IMAGE; Register.iImage = 1; pTab->SetItem(0,&Register); //######################################################### return TRUE; // }Für jede Anregung und Hilfe bin ich sehr danbar.
Happy Holidays
:xmas1: :xmas2: Thomas
-
-
guenni81 schrieb:
http://www.codeguru.com/cpp/controls/propertysheet/article.php/c611/
Habe hiermit Probleme....läuft so nicht ???

BOOL bResult = CPropertySheet::OnInitDialog();Hier der ganze code von codeguru.com
BOOL CMyPropSheet::OnInitDialog() { BOOL bResult = CPropertySheet::OnInitDialog(); m_imageTab.Create( IDB_TABIMAGES, 13, 1, RGB(255,255,255) ); CTabCtrl *pTab = GetTabControl(); pTab->SetImageList( &m_imageTab ); TC_ITEM tcItem; tcItem.mask = TCIF_IMAGE; for( int i = 0; i < 3; i++ ) { tcItem.iImage = i; pTab->SetItem( i, &tcItem ); } return bResultmfg
Thomas
-
Du benötigst natürlich auch ein Property-Sheet, damit du dessen Methoden aufrufen kannst - und das bedeutet letztendlich, daß deine Dialog-Klasse von CPropertySheet abgeleitet werden sollte.
(wenn das nicht passt: eine Fehlermeldung sagt normalerweise mehr aus als "das geht nicht" ;))
-
CStoll schrieb:
Du benötigst natürlich auch ein Property-Sheet, damit du dessen Methoden aufrufen kannst - und das bedeutet letztendlich, daß deine Dialog-Klasse von CPropertySheet abgeleitet werden sollte.
(wenn das nicht passt: eine Fehlermeldung sagt normalerweise mehr aus als "das geht nicht" ;))
Wie kann ich meine Dialog-Klasse von CPropertySheet ableiten?
Wie überscheibe ich OnInitDialog() ?BOOL CMyDlg::OnInitDialog() { CDialog::OnInitDialog(); // Hinzufügen des Menübefehls "Info..." zum Systemmenü. // IDM_ABOUTBOX muss sich im Bereich der Systembefehle befinden. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // Symbol für dieses Dialogfeld festlegen. Wird automatisch erledigt // wenn das Hauptfenster der Anwendung kein Dialogfeld ist SetIcon(m_hIcon, TRUE); // Großes Symbol verwenden SetIcon(m_hIcon, FALSE); // Kleines Symbol verwenden // TODO: Hier zusätzliche Initialisierung einfügen return TRUE; // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten }Sorry immernoch eine Anfänger

CDialog::OnInitDialog();ändern auf
BOOL bResult = CPropertySheet::OnInitDialog();Ergibt Fehler: Unzulässiger Aufruf einer nicht stat. Memberfunktion
Was mache ich wohl falsch ???
-
Du gehst in die Header-Datei deiner Dialogklasse (CMyDlg.h oder so) und änderst dort die Definition
class CMyDlg : public CDialog {in
class CMyDlg : public CPropertySheet {(ich hab' die genaue Klassenhierarchie nicht im Kopf - eventuell müsstest du also weitere Anpassungen vornehmen)