带有GDI的黑色高亮显示栏

时间:2012-07-02 08:10:11

标签: c++ winapi gdi

我为我的GUI获得了一些不错的分割器代码,但我无法获得笔/画笔/我需要做的正确突出显示。您知道在visual studio 10中,可以拖动分割条,并且有一个漂亮的黑色透明条,让您知道当您抬起鼠标按钮时分割的位置。这是一张图片:http://www.freeimgshost.com/fullsize/efmcxyyu1wbyb1r7mz0.png

如何仅使用GDI和c ++实现黑色高亮显示条?

2 个答案:

答案 0 :(得分:3)

Visual Studio UI是在WPF中实现的,所以我猜测分割条只是一个半透明的填充矩形。

然而,GDI对透明度的支持相当差。

使用半透明,始终在线的分层窗口,您可以获得相同的效果。这是一个简单的解决方案,因为您不必担心重新绘制任何内容。你只需移动窗口。

This answer to another question有一些代码可以创建这样一个窗口(用于不同的目的)。

答案 1 :(得分:1)

这可能是LockWindowUpdate()的正确用法之一。

在Mousedown上,锁定窗口,然后直接开始绘制拖动条。在捕获鼠标时,拖动条仍会收到鼠标通知。在鼠标上,解锁窗口,调整大小并让绘图正常进行。