我正在尝试创建一个自定义控件CStatic并vc++遇到一些问题。
我最初只是使用带有样式的CStatic控件。SS_BLACKRECT在我需要在控件上按需显示图像之前,这对这种情况很有用。
我弄清楚了将图像实际绘制到控件上的所有后勤工作,但我似乎无法弄清楚如何在不干扰其他事情的情况下这样做。
基本上,我希望控件在大多数情况下都能正常CStatic使用该SS_BLACKRECT样式。
然后我需要能够调用一个方法,让它在控件上绘制图像。我正在使用绘图并在方法和方法GDI中都尝试过但没有成功。我可以让它在其中绘制,但是当我调用基础时,它会在我的图像上绘制。OnPaint()DrawItem()OnPaint()CStatic::OnPaint()
我需要能够让它像平常一样绘制,然后只是在上面放一个图像。当我尝试在该DrawItem()方法中执行此操作时,我遇到了问题,因为显然它不是使用SS_BLACKRECT样式进行绘制,而是在等待我按预期绘制控件。
我想我想我正在寻找的是三件事之一。GDI在基本OnPaint()方法完成后使用的一种绘制方法。一种让控件绘制默认SS_BLACKRECT样式然后绘制OWNERDRAW图像的方法。或模仿绘图的代码SS_BLACKRECT。
最后一个可能是最简单的,但我只是不知道我需要设置的所有东西来绘制CStatic像默认 DrawItem 这样的控件。