现在许多笔记本电脑都有FN热键来改变音量,亮度等,并且通常会在屏幕上呈现完全在操作系统上方呈现的视觉提示。对于新的Windows 8 / 8.1系统,这种视觉甚至出现在地铁一侧的桌面之外。它们不能在无边界窗口内绘制,否则它不会出现在地铁界面上。
我已经尝试过研究DirectX是否可以直接绘制到屏幕上但它似乎没有显示出来。我甚至都不知道我是否应该研究一下OpenGL ......?
我使用GDI 取得了一些成功;特别是带参数NULL的GetDC函数来抓取屏幕设备。
#include <Windows.h>
int main() {
const HDC dc = GetDC(NULL);
while (1) {
Rectangle(dc, 100, 100, 500, 500);
}
}
但是,这需要重复渲染所有内容,因为我的屏幕区域可能会被后台更改的其他窗口覆盖。即使它在循环中重新渲染,也会出现大量的屏幕闪烁。
这些笔记本电脑的OEM制造商如何实现这一目标?
感谢。
答案 0 :(得分:1)
看起来这些是无边框的窗户。 例如,查看任务切换器窗口:
相关问题: Windows 8 Layered Windows Over Metro Apps
如果您想要一个位于Metro之上的窗口,则需要它来声明可访问性。