无法在Windows API中实现仪表

时间:2010-09-04 02:18:03

标签: c++ windows api progress meter

我正在使用Windows API(在C ++中)创建一个Windows应用程序。

现在,我有一个进度条,我想像米一样显示。米是蓝色的,没有动画。我无法弄清楚如何实现这一点,如果必须的话,我会满足于通常的绿色进度条。

请帮忙。

编辑:至少,是否可以禁用动画(在栏的填充部分突出显示幻灯片)?

EDIT2:

如果其他人遇到此问题,这是C ++解决方案:

PAINTSTRUCT ps;
HDC hDC = BeginPaint(hwnd,&ps);
RECT r;
HTHEME theme = OpenThemeData(hwnd,L"PROGRESS");
SetRect(&r,10,10,100,25);
DrawThemeBackground(theme,hDC,11,2,&r,NULL);
SetRect(&r,10,10,50,25);
DrawThemeBackground(theme,hDC,5,4,&r,NULL);
CloseThemeData(theme);
EndPaint(hwnd,&ps);

2 个答案:

答案 0 :(得分:1)

您可以使用DrawThemeBackground()绘制此样式的进度条。您可以在this thread的答案中找到主题名称,部分和州号。

答案 1 :(得分:0)

内置控件不能这样做......但是,它不像ProgressBar是一个复杂的控件。如果您只想要一个蓝色矩形,请使用DrawRect并绘制一个蓝色矩形。