Wie geht MF_OWNERDRAW in Menüs



  • Möchte ein logo im menu Anzeigen aber so das kein rand im menü ist hier bsp.

    Bsp. 1 Hier Menü Im Owner-draw Anzeige

    Bsp. 2 Hier Menü ohne Owner-Draw

    Möchte das Mein Bild Angezeigt Wird So wie Bei Bsp. 1 Owner-Draw bsp. nur kenne ich mich kein bisschen aus mit Owner-Draw 😕 aus, er zeigt mir das bild schwarz an kann mir einer nen guten tip geben

    Vielen Dank im voraus 😃


  • Mod

    Dein dazugehörige Fenster bekommt dann eine WM_DRAWITEM Nachricht gesendet.
    Die zeichnet dann mit den übergebenen Daten.



  • Ahja Ok und wie lade ich bsp weise jetzt eine bitmap mit owner-draw in ein menu



  • hab das bisher so

    [cpp]
    
    case WM_MEASUREITEM:
    { 
      LPMEASUREITEMSTRUCT mis = (LPMEASUREITEMSTRUCT)lParam; 
      mis->itemWidth = 200;
      mis->itemHeight= 64; 
      return true;
    } 
    break;
    
    case WM_DRAWITEM:
    { 
       HDC     hdcMem ;
       DRAWITEMSTRUCT *lpdis = (DRAWITEMSTRUCT*)lParam; 
       // Färbe Hintergrund Schwarz   
       HBRUSH hbr = CreateSolidBrush(RGB ( 0,  0,  0)); 
       FillRect(lpdis->hDC,&lpdis->rcItem,hbr); 
       DeleteObject(hbr); 
       // Zeichne Bitmap
       hdcMem = CreateCompatibleDC(lpdis->hDC); 
       SelectObject(hdcMem, hMenuBitLogo); 
       StretchBlt( lpdis->hDC,	0,0,230,64, hdcMem, 0, 0, 230, 64, SRCCOPY);
       DeleteDC(hdcMem);
    }
    break;
    

    [/cpp]

    nur wie bekomme ich das so das es nur auf das menü angewand wird und nicht auf alle Owner-Draw Typen wie Buttons usw.



  • Ich glaube mit der ID kanns du die OwnerDraw Elemente ausernander halten.

    switch(pdis->CtlID)
    

    nur bei Menus geht das nicht, steht in der MSDN da is der Wert einfach nichts, also es wird bei Menüs nicht genutzt...

    Aber an die Id kommt man mit

    switch(pdis->itemID)
    

    Kanss ja mal probieren vllt funst das ja

    lg c4f



  • also so funktioniert es bei mir seperat auf den Button zu zeichnen

    [cpp]
     :idea:  if( draw->hwndItem == hButton)
    [/cpp]
    

    nur für Menüs gehts net aber auf die anderen Controls

    und wie kann ich das den Owner - Draw Menu Zuweisen

    😕



  • Thx habs selbst gelöst mit

    [cpp]
    if(draw->itemID == 0)
    //0 = ID Eintrag Meines Menüs
    [/cpp]
    

    😃



  • np, aber wie gesagt im ICQ bei funst es bei meinem OwnerDraw Menu mit dem case Zweig... achja hab mein OwnerDraw Menu fertig ich schick dir den Code heut Mittag xD

    hehe ein 16 Jähriger hat dich geschlagen 😛


Anmelden zum Antworten