大家好,最近看vc++,帮忙看一个问题:我在OnDraw函数中写: CBrush NewBrush1,NewBrush2;
NewBrush1.CreateSolidBrush(RGB(0,0,128));
pDC->SelectObject(&NewBrush1); //这里的参数是地质
pDC->RoundRect(200,100,330,200,15,15);
pDC->SelectStockObject(LTGRAY_BRUSH); pDC->Pie(350,50,420,150,360,50,400,50); NewBrush2.CreateHatchBrush(HS_DIAGCROSS, RGB(125,125,125));
pDC->SelectObject(NewBrush2);//这里不是地址,但是vc++没有报错阿,而且我运行结果没有什么不同?以上关于SelectObjct这个函数,我查了MSDN,是:CBrush* SelectObject( CBrush* pBrush );返回一个原来的对象指针,没有问题啊,但是就是不知道为什么,我上面那样协也可以阿??谢谢了。
NewBrush1.CreateSolidBrush(RGB(0,0,128));
pDC->SelectObject(&NewBrush1); //这里的参数是地质
pDC->RoundRect(200,100,330,200,15,15);
pDC->SelectStockObject(LTGRAY_BRUSH); pDC->Pie(350,50,420,150,360,50,400,50); NewBrush2.CreateHatchBrush(HS_DIAGCROSS, RGB(125,125,125));
pDC->SelectObject(NewBrush2);//这里不是地址,但是vc++没有报错阿,而且我运行结果没有什么不同?以上关于SelectObjct这个函数,我查了MSDN,是:CBrush* SelectObject( CBrush* pBrush );返回一个原来的对象指针,没有问题啊,但是就是不知道为什么,我上面那样协也可以阿??谢谢了。
CBrush 中应该 定义了这种转换, 比如还有转换成 HBRUSH可以 参考<effective C++>
可以 看一下 CBrush 的代码.