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.aspxda 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
-
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