【发布时间】:2017-05-31 20:51:55
【问题描述】:
我有一个窗口(@987654325@ 对象),我正在其中绘制位图图像。
在此之前,我想将窗口的背景设置为特定的图案。
模式可能会不时改变。
如果我理解正确,那么我需要重写窗口的OnCtlColor 函数,并返回一个与我想要的图案兼容的画笔(根据内部数据结构重新计算)。
我走对了吗?
图案相当不规则。它由“斑马条纹”组成,所有这些条纹都具有相同的宽度,但(可能)具有不同的高度。这是一个图解示例:
甚至可以用这种图案制作画笔吗?
如果是,那么以下哪个函数最合适:
CBrush::CreateBrushIndirectCBrush::CreateDIBPatternBrushCBrush::CreateHatchBrushCBrush::CreatePatternBrush
谢谢。
【问题讨论】:
-
@KonstantinL:好的,这是个好主意。所以这回答了我的第一个问题,我可以在
OnEraseBkgnd上画出我想要的图案。但现在我知道如何使用CDC::Rectangle来做到这一点。有什么方法可以轻松创建画笔并用它绘制整个背景?谢谢。 -
可能是这个:CreateDIBPatternBrushPt (msdn.microsoft.com/en-us/library/windows/desktop/…)。