我的函数如下
void CMyButton::LoadBack(CWnd* pParent)
{//对话框中的自定义按钮  pParent是对话框
ASSERT(GetStyle()&BS_OWNERDRAW);
if(m_pBitmap!=NULL)  return;
RECT rect,rect1;
// RECT rect;
GetWindowRect(&rect);//正常
pParent->GetWindowRect(&rect1);//注意,这里的rect1.left=0,rect.top=0,但是我的对话框是在屏幕中间的
// pParent->ScreenToClient(rect);
// ::ScreenToClient(NULL,rect);
// rect.OffsetRect(rect1.left,rect1.top);
CPaintDC dc(pParent);
if(m_pBitmap==NULL)  m_pBitmap=new CBitmap;
CDC memDC;
memDC.CreateCompatibleDC(&dc);
m_pBitmap->CreateCompatibleBitmap(
&dc,rect.right-rect.left,rect.bottom-rect.top);
memDC.SelectObject(m_pBitmap);
memDC.StretchBlt(0, 0, rect.right-rect.left,rect.bottom-rect.top, &dc,
rect.left, rect.top,rect.right-rect.left,rect.bottom-rect.top, SRCCOPY);
memDC.DeleteDC();
m_pFont=pParent->GetFont();
ModifyStyle(0,WS_VISIBLE);//显示按键
SetButtonMode(ODA_DRAWENTIRE,0);//绘制按键
}在对话框中的OnInitDialog()中也无法得到正确的rect,也就无法得到对话框的背景图,而只是后面屏幕上的位图(注:对话框没有标题栏)
不知道为什么得不到?困惑ing。