我试图改变背景和酒吧的颜色在一个赢得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 );
我猜这是不工作的,因为视觉主题被启用。 任何人都可以build议我做一个方法来完成或禁用视觉样式。 我正在使用VS 2008.另外,它是一个非mfc应用程序。
您可以通过调用SetWindowTheme
来禁用单个控件的主题。 对于你的进度条,禁用像这样的主题:
SetWindowTheme(hwndPB, "", "");
一旦你禁用主题,你将能够控制颜色。