今天做创建不规则窗口的时候开始几个窗口都正常显示.但是在就有个窗口在显示的时候只显示白色..不能把图片显示出来..只有个框架...我汗...大家看下我的代码...我在网上找的..BOOL GETPATH::OnInitDialog() 
{
CDialog::OnInitDialog();

CClientDC dc(this);
/*将窗体大小调整到位图大小一样*/
m_b.LoadBitmap(IDB_BITMAP3);

    BITMAP bm;
    m_b.GetBitmap(&bm);

    CRect rtWindow;
    GetWindowRect(&rtWindow);
    rtWindow.right = rtWindow.left+bm.bmWidth;
    rtWindow.bottom =rtWindow.top +bm.bmHeight;
    MoveWindow(&rtWindow);
    SetR(&dc,m_b,RGB(255,255,255)); return TRUE;  // return TRUE unless you set the focus to a control
              // EXCEPTION: OCX Property Pages should return FALSE
}
void GETPATH::SetR(CDC *pDC, CBitmap &cBitmap, COLORREF TransColor)
{
    CDC memDC;
    //创建与传入DC兼容的临时DC
    memDC.CreateCompatibleDC(pDC);
    CBitmap *pOldMemBmp=NULL;
    //将位图选入临时DC
    pOldMemBmp=memDC.SelectObject(&cBitmap);
    CRgn wndRgn;
    //创建总的窗体区域,初始region为0
    wndRgn.CreateRectRgn(0,0,0,0);
    BITMAP bit;   
    cBitmap.GetBitmap (&bit);//取得位图参数,这里要用到位图的长和宽     
    int y;
    for(y=0;y<=bit.bmHeight  ;y++)
    {
        CRgn rgnTemp; //保存临时region
        int iX = 0;
        do
        {
            //跳过透明色找到下一个非透明色的点.
            while (iX <= bit.bmWidth  && memDC.GetPixel(iX, y) == TransColor)
                iX++;
            //记住这个起始点
            int iLeftX = iX;
            //寻找下个透明色的点
            while (iX <= bit.bmWidth  && memDC.GetPixel(iX, y) != TransColor)
                ++iX;
            //创建一个包含起点与重点间高为1像素的临时“region”
            rgnTemp.CreateRectRgn(iLeftX, y, iX, y+1);
            //合并到主"region".
            wndRgn.CombineRgn(&wndRgn, &rgnTemp, RGN_OR);            
            //删除临时"region",否则下次创建时和出错
            rgnTemp.DeleteObject();
        }while(iX <bit.bmWidth );
        iX = 0;
    }
    
    if(pOldMemBmp)
        memDC.SelectObject(pOldMemBmp);
    
    CWnd * pWnd = pDC->GetWindow();
    pWnd->SetWindowRgn(wndRgn,TRUE);    
    pWnd->SetForegroundWindow();    
}
只能显示一个轮阔...我汗...大家帮忙看下是什么问题....麻烦大家了..谢谢...