Bilder auf Button



  • Hi, ich habe versucht ein Bitmap auf einen Button zu machen aber es ist nichts zu sechen?

    CButton m_myadd;
    m_myadd.Create("My button", WS_CHILD|WS_VISIBLE|BS_BITMAP,CRect(300,10,60,50), this, 1);	
    m_myadd.SetBitmap(LoadBitmap(NULL,MAKEINTRESOURCE(IDB_ADD)));
    

    bzw. wie macht man das mit den MFC-Assistenten?

    MFG TaccoGo



  • Schau mal bei www.Codeguru.com



  • Vielen dank,
    ich habe etwas gefunden!



  • hallo TaccoGo!
    da die suche nicht funkt und ich auch bei guru nicht fündig geworden bin, könntest du mir bei deinem problem bitte weiterhelfen. ich möchte ebenfalls in einem button eine bmp einbinden, schaffe es aber nicht
    danke



  • Ein anderer Tip:

    [url]
    http://www.codeproject.com/buttonctrl/
    [/url]



  • Wenn du nur ein Bitmap auf einen Button haben möchtest, dann kannst du es
    so machen :

    1. Du erstellst dir ein Button und machst bei den Styles ein Haken bei Bitmap.
    2. Du machst dir in der Dlg.h eine Variable namens CBitmap bitmap;
    3. Dann gehst du in die OnInitDialog rein und schreibst folgenden Code unter "SetIcon(m_hIcon, TRUE); SetIcon(m_hIcon, FALSE);" :
    bitmap.LoadBitmap(IDB_BITMAP1);
    m_Button.SetBitmap(bitmap);
    

    m_Button muss natürlich die member variable deines Buttons sein !

    Alles in allem sieht es dann in der OnInitDialog so aus:

    BOOL CSdfsdfDlg::OnInitDialog()
    {
    	CDialog::OnInitDialog();
    
    	// Add "About..." menu item to system menu.
    
    	// IDM_ABOUTBOX must be in the system command range.
    	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);
    		}
    	}
    
    	// Set the icon for this dialog.  The framework does this automatically
    	//  when the application's main window is not a dialog
    	SetIcon(m_hIcon, TRUE);			// Set big icon
    	SetIcon(m_hIcon, FALSE);		// Set small icon
    
    	[b]bitmap.LoadBitmap(IDB_BITMAP1);
    	m_Button.SetBitmap(bitmap);[/b]
    
    // TODO: Add extra initialization here
    
    	return TRUE;  // return TRUE  unless you set the focus to a control
    }
    

    Ich hoffe ich konnte dir helfen !

    Gruß
    :: NoName ::



  • danke dir, hast gut erklärt, funktioniert wunderbar.
    😋



  • Hallo

    ich hab das mal versucht, aber bei mir werden die bitmaps nicht angezeigt.
    ich möchte nämlich bei einem klick auf einem button ein bild auf diesem button anzeigen lassen. Deswegen hab ich das in eine Funktion geschrieben.

    [code]
    void CTestDlg::OnButton2() 
    {
        CBitmap bitmap;
        bitmap.LoadBitmap(IDB_CIRCLE);
        m_test.SetBitmap(bitmap);
    }
    [/code]
    

    Das programm lässt sich ohne fehler und Warnungen ausführen, aber nach einem klick auf den button passiert nichts. ich hab bei den eigenschaften des buttons das häckchen bei Bitmap gesetzt.



  • Hi,

    Es könnte sein das es nicht klappt, weil du die CBitmap Variable nicht in der Dlg.h geschrieben hast. Außerdem würde ich dir empfehlen für den Effekt den du haben möchtest eine eigene Klasse zu schreiben !

    Gruß
    :: NoName ::



  • hey danke...jetz gehts.


Log in to reply