0

Scintilla テキスト編集コントロールを埋め込む MFC アプリがあります。Scintilla コントロールをカスタマイズして、垂直スクロールバーの横にいくつかのカスタム コントロールを表示したいと考えています。基本的に、下のオレンジ色の領域にいくつかのコントロールをレンダリングしたいと思います。緑色の領域はスクロール バーを表します。

ご希望のお客様エリア

Scintilla ウィンドウの WM_NCCALCSIZE メッセージをオーバーライドして、クライアントの四角形の右側からオフセットを差し引いてみました。コードは次のとおりです。

void CScintillaCtrl::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp)
{
    CWnd::OnNcCalcSize(bCalcValidRects, lpncsp);
    lpncsp->rgrc[0].right -= 100;
}

ただし、これにより、以下に示すように、垂直スクロール バーと水平スクロール バーの位置が変更され、クライアントの幅が狭くなります。

クライアント オフセットからのスクロールバー オフセット

この動作が Scintilla によるものか Windows によるものかはわかりません。クライアント領域を調整し、スクロール バーの位置を維持する方法はありますか?

4

1 に答える 1