我想让按钮形状随位图的形状改变,按钮风格是自己绘制(BS_OWNERDRAW)
使用的方法是在初始化按钮时,用SetWindowRgn来改变其形状。
但是我无法改变窗口的形状???
完整代码见:
http://expert.csdn.net/Expert/topic/2894/2894925.xml?temp=.8161127如下是按钮Oncreate中的代码
BITMAP bminfo;
m_bmpDef.GetObject(sizeof(bminfo), &bminfo); CDC * pDC = this->GetDC();
CDC memDC;
memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(&m_bmpDef);
this->ReleaseDC(pDC); // Create the rgn
CRgn rgnTemp;
COLORREF  color, temp;
color = GetPixel(memDC.GetSafeHdc(), 0, 0);
m_rgnBgd.CreateRectRgn(0, 0, bminfo.bmWidth, bminfo.bmHeight);

int i, j;
for (i = 0; i < bminfo.bmWidth; i ++)
{
for (j = 0; j < bminfo.bmHeight; j ++)
{
temp = memDC.GetPixel(i, j);
if (color == temp)
{
rgnTemp.CreateRectRgn(i, j, i+1, j+1);
m_rgnBgd.CombineRgn(&m_rgnBgd, &rgnTemp, RGN_DIFF);
rgnTemp.DeleteObject();
}
}
}

this->SetWindowRgn(m_rgnBgd, TRUE);