Problem in BitBlt Function
Code for the program is :
#include "StdAfx.h"
#include "resource.h"
#include ".\chidmenu.h"
#define mnuHeight 24
#define mnuWidth 163
CChidMenu::CChidMenu(void)
{
}
CChidMenu::~CChidMenu(void)
{
}
void CChidMenu ::DrawItem (LPDRAWITEMSTRUCT lpDIS)
{
if(lpDIS->itemAction == ODA_DRAWENTIRE)
{
DrawEntireMenu(lpDIS);
}
//if()
}
void CChidMenu ::DrawEntireMenu (LPDRAWITEMSTRUCT lpDIS)
{
CDC* pDC = CDC::FromHandle(lpDIS->hDC);
CDC *tempDC=new CDC();
tempDC->CreateCompatibleDC (pDC);
CBitmap bmpMenuBitamp,*oldBitmap;
BOOL b=bmpMenuBitamp.LoadBitmap (IDB_BITMAP2);
oldBitmap=tempDC->SelectObject (&bmpMenuBitamp);
pDC->BitBlt (0,0,mnuWidth,3*mnuHeight,tempDC,0,0,SRCCOPY);
}
void CChidMenu::MeasureItem(LPMEASUREITEMSTRUCT MenuMeasurement)
{
MenuMeasurement->itemHeight =mnuHeight;
MenuMeasurement->itemWidth =mnuWidth ;
}
Output:
There is a difference in the bitmap ... border and the CDC border....
it becomes visible that ...somthing is pasted...on the CDC n there is
difference in all the 4 corners...
How to remove the difference ...? Is the ... Menu CDC gives less
area...to paint??
Help needed