如何使用WinApi创建本机“进度环”控件?
除了Windows 8现代UI应用程序的“ProgressRing”类之外,我在MSDN上找不到任何内容。
http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.progressring
我希望能够在Windows 8上的纯win32应用程序中使用它并让它绘制“旋转球”。但在Windows 7上它应该是“蓝色圆圈”。我知道对于Windows 7,蓝色图标是可以渲染的默认鼠标忙光标。对于Windows 8,我找不到它使用的实际资源。
更新:我想把它画在一个窗口而不是把它设置为鼠标光标,我应该澄清一下 - 即使如此,Windows 8上的忙碌光标也不是“旋转球”动画。
答案 0 :(得分:1)
您只需要使用相应的光标调用LoadCursor()
并将结果传递给SetCursor()
(如果您想将其设置为光标) - 或者以您自己的方式使用它。在前一种情况下,它是您想要的IDC_WAIT
。
像这样:
SetCursor(LoadCursor(NULL, IDC_WAIT));
请记住,Windows会在某些情况下继续重置它 - 这可能会使它看起来无法正常工作。在你的情况下(我怀疑它)可能适合用它来回应WM_SETCURSOR
。
在后一种情况下(您只想以自己的方式使用光标),您可以使用DrawIcon()
来自HCURSOR
的{{1}}。