Skip to main content
Email Password   helpLost your password?

Introduction

This code helps you to load a bitmap from a resource or from a file and show it in a MDI View. It enables scrolling and also scrolls the bitmap accordingly.

Steps to follow

Follow the following seven easy steps :-

Step 1

Create a MDI Application by selecting Multiple Documents Interface in Step 1 of the app-wizard process.

Step 2

In the 6th step, select the View class and in the combo box called base class , select CScrollView and then click Finish.

Step 3

Create the following variables in the View class (yourview.h file)

Step 4

In the View class , select the OnInitialUpdate function and change the code like this.

void CMDIView::OnInitialUpdate() 
{
    CDC *pDC = this->GetDC();

    m_MemDC.CreateCompatibleDC(pDC);

    m_bmpView.LoadBitmap(IDB_BMP_BKGND);    
    // Here IDB_BMP_BKGND is a bitmap included in the resource

    // Note : You can also load a bitmap from a file in the 

    // hard disk instead of using the bmp in the resource.


    m_MemDC.SelectObject(&m_bmpView);

    BITMAP Bitmap;
    m_bmpView.GetBitmap(&Bitmap);

    m_nBmpHeight = Bitmap.bmHeight;
    m_nBmpWidth = Bitmap.bmWidth;

    CSize size(m_nBmpWidth,m_nBmpHeight);
    SetScrollSizes(MM_TEXT,size);

    this->ReleaseDC(pDC);    
}

Step 5

Select the OnDraw function and change the code inside like this

void CMDIView::OnDraw(CDC* pDC)
{
    pDC->BitBlt(0,0,m_nBmpWidth,m_nBmpHeight,
        &m_MemDC,0,0,SRCCOPY);

    SetScrollSizes(MM_TEXT, CSize(m_nBmpWidth,m_nBmpHeight));
    CChildFrame *pParentFrame =
        (CChildFrame *)this->GetParentFrame();
    pParentFrame->RecalcLayout();
    ResizeParentToFit();    
}

Step 6

To prevent flickering of the bitmap when its being scrolled, override the View's OnEraseBkgnd and the ChildFrame's OnEraseBkgnd like this.

BOOL CMDIView::OnEraseBkgnd(CDC* pDC) 
{
    return TRUE;
}   

BOOL CChildFrame::OnEraseBkgnd(CDC* pDC) 
{
    return FALSE;
}

Step 7

Compile your project and run it. That's it. Now, you have a scrolling window which displays a bitmap too.  All luck and have a great time.

You must Sign In to use this message board.
 
 
Per page   
 FirstPrevNext
GeneralChildFrame????? Pin
Furries
3:28 25 Nov '04  
GeneralRe: ChildFrame????? Pin
PeteOlcott
6:22 19 Aug '07  
GeneralThanks Pin
Ajay_Chopra
3:15 17 Jun '04  
GeneralAre these calls all needed Pin
CJN
22:50 8 Oct '03  
GeneralHow to load bitmap from disk file Pin
CJN
17:02 8 Oct '03  
GeneralRe: How to load bitmap from disk file Pin
Anonymous
3:25 14 Oct '04  
GeneralRe: How to load bitmap from disk file Pin
shizulooi
0:01 14 Jul '09  
GeneralTop of the class Pin
Andy Kuiper
3:05 30 May '03  
Generalthanks Pin
Anonymous
20:36 3 Sep '02  


Last Updated 28 Jun 2002 | Advertise | Privacy | Terms of Use | Copyright © CodeProject, 1999-2009