0

私のアプリケーションは、サードパーティのGUIアプリケーションに挿入されるdllです。dllは、アプリケーションのメインウィンドウにいくつかのコントロールを含む子ウィンドウを作成します。問題は、メインウィンドウが再描画されると、ウィンドウとそのコントロールが点滅することです。私はすでに同様の問題に関する多くの記事を読みましたが、それを修正することができませんでした。ここにいくつかのコードがあります

hwndContainer = CreateWindowEx( WS_EX_TOPMOST, PANEL_CLASS_NAME, "", WS_CHILD | WS_VISIBLE, 0, 0, width, height, hwnd, 0, g_hInstance, cd );
CreateWindowEx( WS_EX_TOPMOST, "button", "Click me", WS_CHILD | WS_VISIBLE | WS_TABSTOP, x, y, w, h, hwndContainer, 0, 0, 0 );

...

case WM_PAINT:
    PAINTSTRUCT ps;
    HDC hdc = BeginPaint( hwndPanel, &ps );
    RECT r;
    GetClientRect( hwndPanel, &r );

    SelectObject( hdc, hpenBorder );
    SelectObject( hdc, GetStockObject( NULL_BRUSH ) );

    RoundRect( hdc, 0, 0, r.right, r.bottom, 5, 5 );

    EndPaint( hwndPanel, &ps ); 
    return 0;

メインウィンドウのスタイルにWS_CLIPCHILDRENを追加してみたり、メインウィンドウのWM_PAINTを処理したりしました。何か考えはありますか?

4

1 に答える 1

0

WS_CLIPSIBLINGS を試してみてください... ウィンドウ スタイルを直接操作してから長い時間が経ちましたが、トップ レベル以外のウィンドウで再描画のちらつきを減らすために必要なこのスタイルを覚えているようです。幸運を。

于 2012-06-08T19:03:03.113 に答える