Avatar billede garlan Nybegynder
14. marts 2003 - 09:36 Der er 3 kommentarer

bitmap

Hej

Hvordan sætter man et bitmap som baggrund billede i en MDI applikation og hvordan kan jeg tilpasse mine view
i størrelses også i MDI

på forhånd tak!
Avatar billede jpk Nybegynder
18. marts 2003 - 07:43 #1
Er det en MFC app?
Avatar billede garlan Nybegynder
18. marts 2003 - 07:59 #2
Ja!
Avatar billede jpk Nybegynder
18. marts 2003 - 08:28 #3
I dit views constructor, kan du loade et bmp således:
m_hBitmap = (HBITMAP)LoadImage(NULL, "bkgrnd.bmp", IMAGE_BITMAP, 0, 0,
        LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);

m_hBitmap er så en membervariabel du skal definere i din view-klasse:
HBITMAP m_hBitmap;

Du laver en funktion til at tegne bmp'en:
void CYourView::DrawBitmap(CDC* pDC, HBITMAP hBitmap, HPALETTE hPal, int xDest, int yDest)
{
    // Get logical coordinates
    BITMAP bm;
    ::GetObject( hBitmap, sizeof( bm ), &bm );
    CPoint size( bm.bmWidth, bm.bmHeight );
    pDC->DPtoLP(&size);

    CPoint org(0,0);
    pDC->DPtoLP(&org);

    // Create a memory DC compatible with the destination DC
    CDC memDC;
    memDC.CreateCompatibleDC( pDC );
    memDC.SetMapMode( pDC->GetMapMode() );
   
    //memDC.SelectObject( &bitmap );
    HBITMAP hBmOld = (HBITMAP)::SelectObject( memDC.m_hDC, hBitmap );
   
   
    // Select and realize the palette
    if( hPal && pDC->GetDeviceCaps(RASTERCAPS) & RC_PALETTE)
    {
        SelectPalette( pDC->GetSafeHdc(), hPal, FALSE );
        pDC->RealizePalette();
    }
    pDC->BitBlt(xDest, yDest, size.x, size.y, &memDC, org.x, org.y, SRCCOPY);

    ::SelectObject( memDC.m_hDC, hBmOld );
}

Det gør du i OnDraw:
DrawBitmap(pDC, m_hBitmap, NULL, 0, 0);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester