2012-07-02 137 views
1

我有一些不错的分离器代码为我的GUI,但我无法得到笔/画笔/无论是我需要做适当的突出显示。您知道在Visual Studio 10中,分隔条可以被拖动,并且有一个漂亮的黑色透明条,让您知道当您抬起鼠标按钮时将发生拆分的位置。这里有一张图片:http://www.freeimgshost.com/fullsize/efmcxyyu1wbyb1r7mz0.png与GDI黑色高亮栏

我该如何实现单独使用GDI和C++的黑色高亮条?

回答

3

Visual Studio用户界面是在WPF中实现的,所以我猜测分隔栏只是一个半透明的填充矩形。

但是,GDI对透明度的支持相当差。

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

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

1

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

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