MFCアプリケーションでキャプション文字列をロードする最適な場所はどこですか?MFCにキャプション文字列をロードするのに最適な場所は?
私は私のフレームのOnCreateの方法で私の意見とロードメニュー項目のキャプションのOnInitialUpdate関数方法で制御キャプションをロードしています。
MFCアプリケーションでキャプション文字列をロードする最適な場所はどこですか?MFCにキャプション文字列をロードするのに最適な場所は?
私は私のフレームのOnCreateの方法で私の意見とロードメニュー項目のキャプションのOnInitialUpdate関数方法で制御キャプションをロードしています。
あなたのプログラムには100以上のキャプションがあるとは思われません。 InitInstance
にロードすることができます。害はありません。
ロードするキャプションが数百を超える場合は、GUIが表示されます(ロードする場所に関係なく、GUI /スレッド全体が1であるため)。この場合、起動時にすべての重要なリソース/キャプションをロードして(InitInstance
)、他のキャプションのロードを他のスレッド/後で延期/委譲する必要があります。
あなたの現在のアプローチではうまくいかないのはなぜですか?なぜ他の場所にロードしたいのですか?一般的に、それらをロードする最も良い場所は、それらが必要なときです(私はCString :: LoadString()でリソースセクションから文字列を読み込むことを話していると仮定しています)。
はい、リソースファイルからCString :: LoadString()をロードしています。私はちょうど私が正しい場所にそれらをロードしているか、より適切な場所があるのだろうかと思っています。 –
メニューと他のコントロールがダイアログの一部である場合、OnInitDialog()
は、ダイアログとそのコントロールのキャプションを設定するのに適しています。
私はダイアログを使用していません。SDIアプリケーションです。 –
OnInitialUpdateはInitInstanceよりも優れているか悪いですか?それぞれの違いは何ですか? –
大したことはありません。しかし、アプリケーションをCViewやDoc/Viewを持たないものに変更すると、 'OnInitialUpdate'メソッドは呼び出されません。したがって、InitInstanceを検討する方が良いかもしれません。 – Ajay