我在一个对话框程序中用了控件 picture ,当触发某消息时显示一张位图,否则不显示任何位图
   if(!chackflag)
   {
     hBitmap = (HBITMAP)LoadImage( NULL,         //不是资源文件
mPicture,     //图片路径
IMAGE_BITMAP,  0,  //源位图宽
0,  //
LR_LOADFROMFILE|LR_DEFAULTSIZE);       pStatic->ModifyStyle(0xF, SS_BITMAP|SS_CENTERIMAGE); 
     pStatic->SetBitmap(hBitmap);
   }
   else 
  {
     //pStatic->ModifyStyle(0xF, SS_BITMAP|SS_CENTERIMAGE); 
     pStatic->SetBitmap(NULL);
  }  UpdateData(FALSE);程序运行正常,后来为了实现静态文本背景透明我增加了WM_CTLCOLOR消息,并在相应处理函数中添加代码:
   HBRUSH CGOPOSDlg::OnCtlColor(CDC* pDC,.....) 
   {
      HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
      if(nCtlColor   ==   CTLCOLOR_STATIC)     
      {   
         pDC->SetBkMode(TRANSPARENT);   //设置背景透明
         pDC->SetTextColor(RGB(255,255,255)); //字体颜色   
         return   HBRUSH(GetStockObject(HOLLOW_BRUSH)); 
       } 
       return hbr;
   }结果原来控制位图显示的 pStatic->SetBitmap(NULL); 失去了作用,上一次显示的位图不能被取消(不能改变已经输出了的位图)
如果屏蔽了return   HBRUSH(GetStockObject(HOLLOW_BRUSH)); 就可以恢复正常难道是GetStockObject(HOLLOW_BRUSH)和 SetBitmap()有冲突吗?我该怎么做呢?谢谢回答^_^