Bild in Dialog anzeigen - statisch - nicht verändern



  • Hallo zusammen,
    um meinen Dialog zu verschönern möchte ich einfach ein Logo meiner Uni einfügen, dass die ganze Zeit stehen bleiben soll.
    Ob jpg oder bmp ist völlig egal. Hauptsache es geht einfach und schnell.

    Vielen Dank für die Hilfe.
    Isa



  • Dan füg doch einfach und schnell ein Bild in deine Dialogressource ein 😕



  • Höö?!! Wenn du nur bsw oben am Rand nen kleines Logo haben willst, dann würde ich mal sagen du setzt ein PictureCtrl auf den Dialog und gibst als Param einfach mal ganz cool dein Img an... Aja und wenn das net geht gib dem picturectrl ne variable und ruft über die dann SetImage oder wie die Funk noch gleich hieß auf... s. MSDN Library



  • generell: http://www.henkessoft.de/C++/MFC/mfc_einsteigerbuch_kapitel4.htm
    Für Buttons: empfehle ich FooButton von www.codeproject.com
    für jpg, ... GDI+



  • Bis ja nen Toller Hengst -.- Es bringt dir nix auf eine Button Klasse zu verlinken, wenn er nur ein Image darstellen will... und warum nicht einfach ein picture ctrl nehmen? Warum von Hand machen? naja -.-



  • Klar geht das einfach, wurde bereits erwähnt. Ich empfehle dennoch FooButton, weil meistens mehr dazu kommt (Text, Anklicken, JPG, ...).
    Die Klasse FooButton - in der Member-Funktion DrawBitmap(...) so abgeändert, dass diese nicht nur aus Ressourcen, sondern auch von extern BMP, JPG, TIF ... laden kann - ist ein variables Tool. Man kann FooButton auch statisch schalten, so dass die visuelle Button-Fkt. (Bild verschieben) nicht wirkt.

    Hier ein Ausschnitt der von mir vorgeschlagenen Änderungen in FooButton::drawBitmap(...): (gdi+ einbinden wegen "Bitmap")

    //! Draws the button's bitmap
    void FooButton::drawBitmap
      (CDC* pDC,
       LPDRAWITEMSTRUCT lpDrawItemStruct,
       int& nBitmapRightEdge)
    {
      ASSERT (pDC != NULL);
      ASSERT (lpDrawItemStruct != NULL);
    
      // Load bitmap - return if unable
      nBitmapRightEdge = 0;
      if (m_BitmapFile == "")
         return;
    
      HBITMAP hBitmap;
      Bitmap b (m_BitmapFile.AllocSysString()); // GDI+ (von extern JPG, ...)
      b.GetHBITMAP(Color::White, &hBitmap);
    
      // So kann man nur(!) BMP extern laden: 
      // HBITMAP hBitmap = (HBITMAP) ::LoadImage (NULL, m_BitmapFile, IMAGE_BITMAP, 0, 0,LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE );
    
      // So kann man BMP als Ressource laden:    
      // HBITMAP hBitmap = ::LoadBitmap (AfxGetResourceHandle(), MAKEINTRESOURCE (m_nBitmapId));
    //...
    

    Nur ein gut gemeinter Tipp. 😉

    Einfach mal anschauen:
    http://www.codeproject.com/buttonctrl/FooButton.asp


Anmelden zum Antworten