位图透明处理有关问题。想在一个对话框中的static中透明显示一副位图。不知道为什么它就是显示不出来?大家帮忙看看

位图透明处理问题。想在一个对话框中的static中透明显示一副位图。不知道为什么它就是显示不出来?大家帮忙看看。
void   CLoginDialog::OnPaint()  
{
CPaintDC   dc(GetDlgItem(IDC_STATIC_RECT));

//   TODO:   Add   your   message   handler   code   here   and/or   call   default
CBitmap*   pOldLogon   =   m_dcLogon.SelectObject(&m_bmpLogon);
CRect   rect;
m_staRect.GetClientRect(&rect);       //   得到客户区矩形

CDC   maskDc;     //   创建设备环境maskDc
CBitmap   maskBitmap;
maskDc.CreateCompatibleDC(&dc); //   创建与当前设备相兼容的设备
maskBitmap.CreateBitmap(rect.Width(),   rect.Height(),   1,   1,   NULL); //   创建一个单色掩码位图
CBitmap*   pOldMaskDCBitmap   =   maskDc.SelectObject(   &maskBitmap   ); //   选入单色图
COLORREF   clrTrans=   m_dcLogon.GetPixel(2,   2); //   取得要消除的背景色值
maskDc.SetBkColor(clrTrans);

maskDc.BitBlt(0,   0,   rect.Width(),   rect.Height(),   &m_dcLogon,   0,   0,   SRCCOPY   );     //   将位图拷贝到maskDc
m_dcLogon.BitBlt(   0,   0,   rect.Width(),   rect.Height(),   &maskDc,   0,   0,   PATINVERT   ); //   位图与mask做‘与’运算
m_dcLogon.BitBlt(   0,   0,   rect.Width(),   rect.Height(),   &maskDc,   0,   0,   SRCCOPY   ); //   显示位图。

maskDc.DeleteDC();
m_dcLogon.SelectObject(pOldLogon);
dc.SelectObject(pOldMaskDCBitmap);
}

------解决方案--------------------
子类化static,把绘制代码改到CMyStatic::OnPaint()中就可以了。