2

次の方法で、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アプリケーションです。

4

1 に答える 1

4

を呼び出して、個々のコントロールのテーマを無効にすることができますSetWindowTheme。プログレス バーについては、次のようにテーマを無効にします。

SetWindowTheme(hwndPB, "", "");

テーマを無効にすると、色を制御できるようになります。

于 2013-05-13T11:42:28.547 に答える