none
VS2008 SP1拡張機能のカスタマイズツールバーを使用するとリサイズが重い RRS feed

  • 質問

  • お世話になります。
    以下の環境で開発をしております。

    OS:Windows 7 Pro
    開発環境:Visual Studio 2008 SP1
    CPU:Core2 2.4GHz
    メモリ:2GB
    グラボ:GeForce9400


    アプリの外観を「Office 2007」や「Visual Studio」のようにする機能を活用し、
    ツールバーをカスタマイズしてアイコンとテキストラベルを表示したいと思っております。
    プロジェクトの設定は以下のようにしています。

    アプリケーションの種類:マルチドキュメント
    プロジェクト形式:MFC標準
    コマンドバー(メニュー/ツールバー/リボン):メニューとツールバーを利用する(サブ項目は両方チェック)
    ※ 記入していないところはデフォルト設定です



    このプロジェクトをビルドし、アプリケーションのメニューから以下の手順で設定を行うことで
    アイコンとテキストラベルを表示することができました。

    1. [表示] - [ツールバーとドッキングウィンドウ] - [カスタマイズ] を選択
    2. 「カスタマイズ」ダイアログの[ツールバー]タブを選択
    3. ツールバー「標準」を選択し、[テキスト ラベルの表示]にチェックを入れる

    が、この設定を反映するとウィンドウのリサイズがやけに重くなります。
    どなたか解消方法をご存知ないでしょうか。

    以上、よろしくお願いします。



    2009年12月3日 10:59

すべての返信

  • こんにちわ。

    アプリケーションの種類がマルチドキュメントとの事ですが、タブ付きドキュメントのチェックは外されたのでしょうか?

    こちらでタブ付きとタブ無しの 2 つのプロジェクトを作成し、1 ~ 3 の項目を実行してみましたが、リサイズのスピードが変わる事はないように感じられました。

    ただ、こちらの環境は Windows XP SP3、CPU Athlon 2000 XP+ 1.67GHz、メモリ 1.256 GB、グラフィックボード無し ( オンボード ) ですのであまり参考にならないかもしれませんが・・・。

    一つ気になったのが、この VC 2008 Feature Pack を使う場合、CWinAppEx 派生クラスの InitInstance で SetRegistryKey 呼び出しが必須になっている事です。

    今までレジストリにゴミを残したくなくて、サンプル的なアプリケーションを作る際にはコメントアウトしていたのですが、それではアサーションに引っ掛かりました。

    レジストリの HKEY_CURRENT_USER、Software 配下の アプリケーション ウィザードで生成されたローカル アプリケーション に大量のゴミエントリがあり、それで遅くなっている、という事は無いでしょうか? ( または HKEY_USERS、S-1-5-21-12・・・、SoftWare 配下 )

    環境も随分違うので、実は遅くなっているが、CPU の派手な差と OS の違いで判らないだけかもしれませんが・・・。

    お力になれず、すいません。
    • 編集済み ミッヒー 2009年12月4日 8:07 レジストリキー誤記訂正
    2009年12月4日 8:05
  • さっそくの返信ありがとうございます。
    こちらではタブ付きドキュメントのチェックあるなしに関わらず発生しています。

    SetRegistryKey 呼び出しが必須になっているのは、前回終了時のカスタマイズしたツールバー表示、ドッキング、スタイルの状態を保存し、次回起動時に読み込んでいるからだと思われます。
    レジストリを消しても動作は変わらず重いままでした。


    さて、私のほうで複数PCが用意できたので環境を変えて試したところ、以下のことがわかりました。

    条件1. OSがWindows XPでは発生しない (手持ちのWindows 7 3機全てで発生。Windows XP SP3機では発生せず。)
    条件2. プロジェクト形式:リソース言語を日本語にすると発生(Windows 7機でもリソース言語を英語(米国)にすると発生せず。)


    まだまだ悩み中

    2009年12月4日 10:20