tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
355
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von sand13r
    sand13r sand13r ist offline Mitglied Gold
    Registriert seit
    Oct 2006
    Beiträge
    101
    Hallihallo werte Freunde der Sonne,


    ich habe ein kleines Problem und zwar muss ich in MS VS 6.0 ein tranzparenten Button laden.

    dies wird so gemacht

    Code cpp:
    1
    2
    3
    4
    5
    6
    
     
    CBUTTON m_cFwd;
    .
    .
     
     m_cFwd.SetBitmap(::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_GO)));

    dadurch kann ich das Bitmap anzeigen.. nun geht in Bitmaps aber keine Transparenz nur in gifs ico etc. kein Problem nehme ich halt ein Transparentes ico. kann man ja auch ganz einfach hinzufügen.
    gesagt getan nur leider weis ich nicht wie ich die Icons an der Stelle vom CButton anzeigen kann.. ich habs schon so versucht..

    Code cpp:
    1
    
    m_cFwd.SetIcon(::LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON1)));

    geht aber leider nicht...

    weis jemand Rat?


    danke schonmal im Vorraus


    greetz sand13r
    Geändert von sand13r (30.10.07 um 16:47 Uhr)
     
    #include<MCoder.h>
    #include<iostream>
    #include<conio.h>

    int main()
    {
    MCoder *pmcoder;

    cout<<"Please ask your Question!!"<<endl;
    cin>>pmcoder->QuestionString;

    cout<<"Answer is:" <<pmcoder->GetAnswer(pmcoder->QuestionString)<<endl;

    getch();
    return 0;
    }

  2. #2
    Avatar von pschilling
    pschilling pschilling ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Duisburg (NRW)
    Beiträge
    192
    Hi,

    also mit der folgenden methode kannst du Transparente Grafiken zeichnen.

    Dafür muss deine Grafik allerdings den gesamten transparenten Bereich in einer bestimmten Farbe haben, welche dann transparent gezeichnet wird.


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    
    void MyClass::TransBlt( CDC *pDC, int nXDest, int nYDest, int nWidth,
                                        int nHeight/*, HBITMAP hBitmap, int nXSrc, int   nYSrc, 
                                        COLORREF colorTransparent, HPALETTE hPal */)
    {
        CDC memDC, maskDC, tempDC;
     
        maskDC.CreateCompatibleDC(pDC);
        CBitmap maskBitmap;
     
        //add these to store return of SelectObject() calls
        CBitmap* pOldMemBmp = NULL;
        CBitmap* pOldMaskBmp = NULL;
        HBITMAP hOldTempBmp = NULL;
     
        memDC.CreateCompatibleDC(pDC);
        tempDC.CreateCompatibleDC(pDC);
        CBitmap bmpImage;
        bmpImage.CreateCompatibleBitmap( pDC, nWidth, nHeight );
        pOldMemBmp = memDC.SelectObject( &bmpImage );
     
        HPALETTE hPal = NULL;
        HBITMAP hBitmap = (HBITMAP)GetSafeHandle();
        // Select and realize the palette
        if( pDC->GetDeviceCaps(RASTERCAPS) & RC_PALETTE && hPal )
        {
            ::SelectPalette( pDC->GetSafeHdc(), hPal, FALSE );
            pDC->RealizePalette();
     
            ::SelectPalette( memDC, hPal, FALSE );
        }
     
        hOldTempBmp = (HBITMAP) ::SelectObject( tempDC.m_hDC, hBitmap );
     
        memDC.BitBlt( 0,0,nWidth, nHeight, &tempDC, 0, 0, SRCCOPY );
     
        // Create monochrome bitmap for the mask
        maskBitmap.CreateBitmap( nWidth, nHeight, 1, 1, NULL );
        pOldMaskBmp = maskDC.SelectObject( &maskBitmap );
        memDC.SetBkColor( RGB(0,255,0));
     
        // Create the mask from the memory DC
        maskDC.BitBlt( 0, 0, nWidth, nHeight, &memDC, 0, 0, SRCCOPY );
     
        // Set the background in memDC to black. Using SRCPAINT with black 
        // and any other color results in the other color, thus making 
        // black the transparent color
        memDC.SetBkColor(RGB(0,0,0));
        memDC.SetTextColor(RGB(255,255,255));
        memDC.BitBlt(0, 0, nWidth, nHeight, &maskDC, 0, 0, SRCAND);
     
        // Set the foreground to black. See comment above.
        pDC->SetBkColor(RGB(255,255,255));
        pDC->SetTextColor(RGB(0,0,0));
        pDC->BitBlt(nXDest, nYDest, nWidth, nHeight, &maskDC, 0, 0, SRCAND);
     
        // Combine the foreground with the background
        pDC->BitBlt(nXDest, nYDest, nWidth, nHeight, &memDC,
            0, 0, SRCPAINT);
     
     
        if (hOldTempBmp)
            ::SelectObject( tempDC.m_hDC, hOldTempBmp);
        if (pOldMaskBmp)
            maskDC.SelectObject( pOldMaskBmp );
        if (pOldMemBmp)
            memDC.SelectObject( pOldMemBmp );
    }

    Die Methode habe ich selbst mal im Internet gefunden und sie funktioniert prächtig

    Gruß,

    Peter
     
    Der Computer wird das tun, was du programmierst - nicht das, was du willst ;-)

  3. #3
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Gehe mal im Dialogdesigner zu den Eigenschaften des Buttons, Auf der Registerkarte "Formate" musst du die Option "Symbol" (NICHT "Bitmap") aktivieren.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

Ähnliche Themen

  1. Mehere Bilder (Icons) bei Mouseover anzeigen
    Von Saimen im Forum HTML & XHTML
    Antworten: 4
    Letzter Beitrag: 18.01.11, 20:55
  2. Icons von Dateien im TreeView anzeigen
    Von Konstabler im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 8
    Letzter Beitrag: 21.09.10, 21:10
  3. BIRT - Icons dynamisch anzeigen
    Von rintin308 im Forum Java
    Antworten: 0
    Letzter Beitrag: 14.07.10, 15:41
  4. JFileChooser Icons anzeigen
    Von jean luc im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 11.07.06, 11:18
  5. Antworten: 0
    Letzter Beitrag: 12.05.06, 23:48