改变颜色进度栏赢32

时间:2013-05-13 11:15:25

标签: windows winapi visual-c++

我试图通过以下方式在win 32进度条中更改背景和条形的颜色:

HWND hwndPB =CreateWindowEx(0, PROGRESS_CLASS, NULL,
    WS_CHILD | WS_VISIBLE |PBS_SMOOTHREVERSE | PBS_MARQUEE ,
    20, 50, 275, 20,
    hwndDlg, NULL,NULL , NULL);

SetWindowLongPtr(hwndDlg,GWLP_USERDATA,reinterpret_cast<LONG_PTR>(hwndPB));
SendMessage(hwndPB,(UINT)PBM_SETBKCOLOR,0,RGB(200,200,200));
SendMessage(hwndPB,(UINT) PBM_SETBARCOLOR,0,(LPARAM)RGB(100,100,100));
SendMessage(hwndPB,(UINT) PBM_SETMARQUEE,(WPARAM) TRUE,(LPARAM)50 );

由于启用了视觉主题,我猜这不起作用。任何人都可以建议我一种方法来完成它或禁用视觉样式。我正在使用VS 2008.此外,它是一个非mfc应用程序。

1 个答案:

答案 0 :(得分:4)

您可以通过调用SetWindowTheme来禁用单个控件的主题。对于进度条,请禁用这样的主题:

SetWindowTheme(hwndPB, "", "");

禁用主题后,您将能够控制颜色。