Entry

プログラミングメモ - Aero UI と MFC のツールバーとか

2012年02月01日

久しぶりに表示系を作っているので少し。

VC++ 9.0(Visual Studio 2008)の MFC でツールバーを普通にくっつけると,Windows 7 の Aero UI ではウィンドウをリサイズするタイミングでツールバーの背景が再描画されなかったりします。何度もリサイズしていると,ツールバーの背景に白いスジがついてしまう。

白いすじが付くの図

これ,意外と目立つと思うんだけれども,ネット上ではあまり対応が紹介されていない感じ。こんな風に,CFrameWnd::RecalcLayout をオーバーライドして,強制的に再描画すればすればいいだけなんですけどね。

void
CMainFrame::RecalcLayout(BOOL bNotify) {
  Invalidate();  // 追加
  CFrameWnd::RecalcLayout(bNotify);
}

MFC はバージョンごとに特性が違うもんだから,いつもと違うものを使うときは躊躇してしまう……。ま,ただそれだけ。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN