Auf einen Button bitmap und Text machen.



  • Hallo , ich weiß nicht ob ich hier richtig bin..
    Ich möchte auf einen Button ein icon und Text machen..das icon hab ich schon auf den Button bekommen:

    HBITMAP HBMP;
    HBMP = LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BITMAP2));
    SendMessage(GetDlgItem(hDlg, IDC_OK),BM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM)HBMP);
    

    So jetzt möchte ich aber das Icon anzeigen lassen UND noch Text auf ein und demselben button. Wie mache ich das?

    MFG



  • entweder selbst zu fuß als Ownerdraw Button oder du suchst dir eine entsprechende Klasse bei CodeProject.com suchen. So was wirst du bei der MFC vergebens suchen, also zumindest wüsste ich net das sowas geht, außer bei Toolbars



  • Was ist denn ein Ownerdraw button?



  • HBITMAP TmpBitmapBuffer	=	(HBITMAP)	::LoadImage(theApp.m_hInstance,MAKEINTRESOURCE(IDB_BITMAP1),IMAGE_BITMAP,32,32,LR_SHARED);
    
    ((CButton*)GetDlgItem(IDC_BUTTON1))->SetButtonStyle(BS_TEXT,1);
    ((CButton*)GetDlgItem(IDC_BUTTON1))->SetBitmap(TmpBitmapBuffer);
    ((CButton*)GetDlgItem(IDC_BUTTON1))->SetWindowTextW(_T("Mein Text"));
    

    Ist es das, was du wolltest?

    eXitus



  • eXitus schrieb:

    HBITMAP TmpBitmapBuffer	=	(HBITMAP)	::LoadImage(theApp.m_hInstance,MAKEINTRESOURCE(IDB_BITMAP1),IMAGE_BITMAP,32,32,LR_SHARED);
    	
    ((CButton*)GetDlgItem(IDC_BUTTON1))->SetButtonStyle(BS_TEXT,1);
    ((CButton*)GetDlgItem(IDC_BUTTON1))->SetBitmap(TmpBitmapBuffer);
    ((CButton*)GetDlgItem(IDC_BUTTON1))->SetWindowTextW(_T("Mein Text"));
    

    eXitus

    Also ich weiss ja net was du für ne Version der MFC, aber bei mir passiert bei deinem code, nix weiter als das der Text des Buttons gesetzt wird, also nix mit Bild.

    @ktsh

    Schau doch mal bei CodeProject.com
    http://www.codeproject.com/KB/buttons/
    und das als Beispiel:
    http://www.codeproject.com/KB/buttons/CImageTextButton.aspx

    da wirste bestimmt was finden was dir gefällt



  • Hi,
    Das finde ich äußerst komisch, weil bei mir Text und Bitmap angezeigt werden?
    (http://img9.imageshack.us/my.php?image=mfctest.jpg)

    VS2008 mit SP1

    eXitus



  • @eXitus

    Finde ich auch, obwohl ich auch VS2008 verwende bekomm ich da kein bild angezeit, und du bist dir sicher das das du dafür einen einfachen CButton verwendest?



  • Ich habe noch ein paar Tests gemacht. Es ist definitiv ein CButton und ich mache nichts anderes als diese vier Zeilen. (Ich habe ein paar neue MFC-Dialog-Anwendungen erstellt, mal mit Membervariable CButton.SetBitmap(); mal mit der GetDlgItem(IDC_BUTTTON)->SetBitmap(); es ist immer das gleiche Ergebnis.

    Kann es sein, dass du Windows XP hast und es die WinApi von XP nicht anzeigen kann? Ich arbeite mit Vista und da gehts das. Ich habe aber leider keinen XP PC da, wo ich das Programm testen könnte.

    Gruß
    eXitus



  • Ich weiß nicht was ein cButton ist.. Ich mach das alles so per hand und nich mit diesen MFC krams.. Könnte mir das einer von hand erklären? Also nich mit diesem cbutton krams?

    MFG


Anmelden zum Antworten