私は(最近)WinFormsアプリケーションで主に使用されているActiveXコントロールを開発しています。複数のCOMCTL32.dllをプロセスにロードできますか?
ActiveXコントロールには、[プロパティページ]ダイアログがあります。このダイアログは、AxHostクラスのShowPropertyPagesメソッドを使用してプログラムで表示できます。これは、Visual Studioでコントロールのプロパティを編集できるカスタムUIです。
このプロパティページのダイアログには、ImageListを使用してリストアイテムの横にアイコンを表示するListBoxコントロールが含まれています。これらのアイコンは、32ビットのアルファブレンドされたビットマップです。これらを正しく表示するには、COMCTL32.DLLのバージョン6.0以上を使用する必要があります。
残念ながら、WinFormsアプリケーションを実行すると、COMCTL32.DLLバージョン5.xxxがロードされて使用されます。その結果、プロパティページのダイアログが表示されたとき、アイコンが見えなくなります(半透明の領域は黒で塗りつぶされます)。
私の質問は:COMCTL32.dllバージョン6.0+をActiveXコントロールのプロパティページのUI内から使用する方法はありますか?または、ホストプロセスにバージョン6.0を使用させることができますか?私は、ホストプロセスがCOMCTL32.DLLをActiveXコントロール内のコードの前にメモリにロードしている可能性があると考えているため、そうは思わないので、COMCTL32 6.0を使用するためのシナリオはいくつかカバーしていますが、状況はありません。 。
うん、私はこれを他の場所で読んでいます。それはそうであり、そうではありません。奇妙な! – mackenir