![]() |
1
10
要在分层窗口中执行“正确”alpha,需要通过调用为窗口管理器提供一个pargb位图。
我所知道的最干净的方法是:
此方法应允许您控制绘制的所有内容的alpha通道:对于背景是透明的,对于文本和按钮是不透明的。
另外,由于您将要输出文本,我建议您调用
|
![]() |
2
3
我怀疑你需要两个顶层的窗口而不是一个-一个是阿尔法混合的窗口,另一个是显示在第一个窗口上面的不透明文本和按钮,但是背景是透明的。要使用单个窗口完成此操作,需要使用 UpdateLayeredWindow API调用,但使用它将导致按钮在与交互时无法重新绘制(悬停突出显示、焦点等)。 如果此应用程序仅适用于Vista,则可能有一个新的API调用可以使用,但我认为它在XP或更早版本中不可用。 |
![]() |
3
0
我不能肯定地说,您需要尝试它,但由于所有东西都是一个窗口,您可以尝试为按钮设置分层属性,使其不透明。 对于文本,您可以将其放置在自己的框架中,设置背景和前景颜色,并修改其分层属性,使背景颜色透明… 但由于这些都是儿童窗口,而不是顶级窗口,我真的不知道它会起作用。 |
![]() |
cyber101 · vc++未声明的标识符,尽管其已声明 7 年前 |
![]() |
areum · 如何在列表控件中创建右键单击菜单? 7 年前 |
![]() |
Rafal · 如何在MFC中的CWnd中显示CFormView? 7 年前 |
![]() |
Anton Savelyev · 在发布版本中删除类指针会导致内存问题 7 年前 |
![]() |
xtkwfn · 如何查找目录[已关闭]下的所有文件夹 7 年前 |
![]() |
Andrew Truckle · 在WPARAM中组合5个值 7 年前 |
![]() |
user3070144 · 通过全局接口表封送ActiveX 7 年前 |