现在许多笔记本电脑都有FN热键来调节音量、亮度等,并通常显示一个视觉提示,完全覆盖在操作系统之上。对于新的Windows 8/8.1系统,这个视觉提示甚至出现在桌面外部的Metro侧栏中。它们不能绘制在无边界窗口内,否则它不会出现在Metro界面上。
我尝试研究DirectX是否可以直接绘制到屏幕上,但似乎不行。我甚至不知道是否应该研究OpenGL……?
我使用GDI有一些成功;具体来说,使用参数NULL的GetDC函数来获取屏幕设备。
我尝试研究DirectX是否可以直接绘制到屏幕上,但似乎不行。我甚至不知道是否应该研究OpenGL……?
我使用GDI有一些成功;具体来说,使用参数NULL的GetDC函数来获取屏幕设备。
#include <Windows.h>
int main() {
const HDC dc = GetDC(NULL);
while (1) {
Rectangle(dc, 100, 100, 500, 500);
}
}
然而,这需要不断重新渲染所有内容,因为我的屏幕区域可能被后台中的其他窗口覆盖。即使通过循环重新渲染,仍然存在大量的屏幕闪烁。
这些笔记本电脑的原始设备制造商是如何实现这一点的?
谢谢。