![]() |
Display Bitmap in a Picture Box using MFC from a file
1 Attachment(s)
When you insert a picture on a Dialog box the main aim of your dialog box is just not to display the Resource bitmaps that are added at compile time but to display the image from a file. Now to display a bitmap I could not find many good resources but if you google out with the keyword LoadPic.exe you can find some help with that sample but that is way too complicated for a simple image display and so I thought of all doing it with my shallow knowledge of Subclasing.
Steps 1. Add a picture Box to your application 2. Change the Type of the picture box to OWNER_DRAW. [Skip this step. Its not needed as corrected by lplover2k] 3. Add a variable to the picture box. By default it will be CStatic. I call it picPreview 4. Change the CStatic to CPictureBox. Don't forget to add the header files at the top. 5. Call the SetBitmap function to display the URL in the picture box. picPreview.SetBitmap(CString m_sBitmap) PictureBox.h Code: CPP
Code: CPP
Edited the code to correct some errors regarding unnecessary include files. Thanks to lplover2k. |
Re: Display Bitmap in a Picture Box using MFC from a file
Hi sabbir iam naresh from hyderabad.iam getting an error in bitmap loading and displaying it. after attaching new bitmap i had called GetBitmap() function and iam getting an error overhere .plz solve my error ,or what is error.
|
Re: Display Bitmap in a Picture Box using MFC from a file
Try studying the code snippets above and it has GetBitmap function. If you do a GetBitmap on a NULL bitmap there is a possibility that you get an exception.
|
Re: Display Bitmap in a Picture Box using MFC from a file
Shabbir,
This was helpfull, but in VC 8.0 (VS2005), you have to do things a little different. 1. The IDE will not let you add a variable of CStatic type. You have to edit the code directly: Calling code header: CPictureBox m_PicBox; Calling code implementaion: void XXX::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); ... DDX_Control(pDX, IDC_PICTBOX1, m_PicBox); } 2. You have to overload the CStatic DrawItem function because winctrl1.cpp has this in it: // Derived class is responsible for implementing all of these handlers // for owner/self draw controls void CStatic::DrawItem(LPDRAWITEMSTRUCT) { ASSERT(FALSE); } PictureBox.h: void DrawItem(LPDRAWITEMSTRUCT ds); PictureBox.cpp: void CPictureBox::DrawItem(LPDRAWITEMSTRUCT ds) { //Do nothing } -Gabe |
Re: Display Bitmap in a Picture Box using MFC from a file
Gabe,
First of all Welcome to G4EF. It allows to add the variable of type CStatic but the name of the control should not be IDC_STATIC. Let me know if I am missing anything. -Shabbir |
Re: Display Bitmap in a Picture Box using MFC from a file
Shabbir,
You may be right. I might have changed the variable name after I added the code to the source file. However, you still must overload DrawItem() in the CPictureBox class. I was getting an assert when I pressed the CTRL key in my program until I did this. Thanks again for the code. -Gabe |
Re: Display Bitmap in a Picture Box using MFC from a file
Yes that I havent tested might be a good tip.
|
Re: Display Bitmap in a Picture Box using MFC from a file
hello, i am new to visual c++ and i was wondering if you could give me a little explanation on how to use the picturebox? my second question is how can i do a frame window which shows a slide show (say using that picture box)?
|
Re: Display Bitmap in a Picture Box using MFC from a file
i am a second year software engineering student, so i have little experience in visual c++ programming but some experience in c++... help! :(
|
Re: Display Bitmap in a Picture Box using MFC from a file
Quote:
Quote:
|
| All times are GMT +5.5. The time now is 10:29. |