Creating a 24-Bit Per Pixel Subregion of a 24-Bit Per Pixel Bitmap
Subregion of the original bitmap
Environment: VC6
This article shows you how to create a portion of a 24-bit/pixel bitmap at runtime. In order to do this, you must add a 24-bit/pixel bitmap to your resources in VC++, decide what portion of the bitmap you wish (specified by the x-y coordinates of the upper left corner and the horizontal/vertical size of the portion), and what .bmp file you want the new portion of the bitmap to be store. The .bmp file created can be used at a later time, but in addition the bitmap of the subregion can be retrieved and used, for example, in your OnDraw function.
In the following code sample, we create a portion of a huge bitmap. The subregion is 416 by 224 pixels, but the original bitmap is well over 100 times this size.
CBitmapSubRegion bsr; BOOL bSuccess; // IDB_BITMAP_SCHUMACHERCAR is a 24-bit/pixel // resource ID added to VC++ bSuccess = bsr.SetResourceID(IDB_BITMAP_SCHUMACHERCAR); if (bSuccess) { bSuccess = bsr.SetFileNameOfResourceBitmap( CString("SchumacherCar.bmp")); if (bSuccess) { // Want to create a subregion which starts at // (x,y) of (259,317) and is 416-pixels wide by // 224-pixels tall bSuccess = bsr.SetSubRegionOfBitmap(259,317,416,224); if (bSuccess) { //Set where to store the new bitmap bSuccess = bsr.SetFileNameForNewBitmap( CString("SuhumacherCarSubRegion.bmp")); if (bSuccess) { bSuccess = bsr.CreateBitmapOfSubRegion(); if (bSuccess) { m_pBitmapSubRegion = bsr.RetrieveBitmapOfSubRegion(); } } } } }

Comments
Getting Linking errors..
Posted by Legacy on 12/27/2001 12:00amOriginally posted by: GMR
BitmapSubRegion.obj : error LNK2001: unresolved external symbol "public: __thiscall CString::~CString(void)" (??1CString@@QAE@XZ)
ReplyBitmapSubRegion.obj : error LNK2001: unresolved external symbol "public: __thiscall CString::CString(void)" (??0CString@@QAE@XZ)
BitmapSubRegion.obj : error LNK2001: unresolved external symbol "public: static void __stdcall CObject::operator delete(void *,char const *,int)" (??3CObject@@SGXPAXPBDH@Z)................................................................
Where do I find BitmapCopy.h ? (I'm learning C++) thanks
Posted by Legacy on 10/24/2001 12:00amOriginally posted by: Bryan
Hi, I was able to locate the includes for stdafx.h, but never could find BitmapCopy.h. in any of my library files, is it included in Microsoft VC++ libraries or is it a seperate download? thanks
ReplyI'm new to C++ programming (I've just done some OOP stuff)