HBRUSH CCircleDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO:  Change any attributes of the DC here CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1); CBrush pbr;
pbr.CreatePatternBrush(&bmp);
hbr = (HBRUSH)pbr; HBRUSH brush = CreatePatternBrush((HBITMAP)bmp); // TODO:  Return a different brush if the default is not desired
return hbr;
}
我如果返回hbr就没有值,如果返回brush就有值,请问这是为什么?

解决方案 »

  1.   

    返回hbr对话框窗口并没有设置成功,返回brush就能设置成功
      

  2.   

    局部变量失效的原因,将CBrush pbr; 设为类成员变量。
      

  3.   

    局部变量失效的原因,将CBrush pbr; 设为类成员变量。
      

  4.   

    CBitmap bmp; 也设置成类成员函数,并且
    bmp.LoadBitmap(IDB_BITMAP1); 
    pbr.CreatePatternBrush(&bmp); 
    放入到OnInitDialog中
      

  5.   

    HBRUSH HPEN是所有Windows编程的基础API,MFC的所有类(包括CBrush CPen)只是把这些API封装成C 的对象,把一些SDK中的一些必要和重复的操作封装到类的构造函数和析构函数中。这也是比较基础的理解而已
      

  6.   

    得着先添加一个类成员变量CBrush pbr