私は、何年も前からある Windows アプリケーションの作成者です。アプリは wxWidgets UI ライブラリを使用します。最新バージョンでは、Studio 10 の Microsoft c++ コンパイラと最新の Windows SDK ライブラリにアップグレードしました。アプリでは他に大きな変更はありません。現在、何人かのユーザーが、アプリを一定期間実行した後、メニューがおかしくなることを報告しています。問題を報告しているすべてのユーザーは、Windows XP を実行しています。メニューは巨大になり、画面いっぱいになり、取り消し線付きの巨大なイタリック フォントが表示されます。または、非常に小さくなり、上矢印と下矢印だけが表示されます。これは、レンダリング コードが、画面の領域が小さすぎて他のものを表示できないと考えていることを示しています。
スクリーン ショットの例は次の場所にあります。
メニューが異常になると、標準の Windows および MDI メニューを除くすべてのメニューが影響を受けます。回復する唯一の方法は、アプリを再起動することです。
アプリと wxWidgits のコードは、標準の Windows API の上の薄いレイヤーです。メニューが作成されると、Windows がレンダリングを管理します。
何がうまくいかないのですか?