15

OpenThemeData (msdn OpenThemeDatapszClassListを参照) 関数を呼び出そうとしていますが、パラメーターによって渡される受け入れ可能なクラス名を特定できませんでした。

HTHEME OpenThemeData(      
    HWND hwnd,
    LPCWSTR pszClassList
);

そのパラメーターに渡すことができる許容可能なクラス名は何ですか? ありがとう!

4

5 に答える 5

6

以前のポスターが指摘したように、「AeroStyle.xml」を見ると、Vista/Aero の正確なリストが得られます。ただし、安全にプレイしたい場合 (そしておそらくそうする場合)、クラス名は一般に、Windows コモン コントロールの Windows クラス名にする必要があります。たとえば、プッシュ ボタンとチェック ボックスはクラス名「Button」、エディット コントロールは「Edit」などを使用します。私は通常、作業中のカスタム要素に最も近いコントロールのクラス名を選択し、そのためのテーマ データ。そうすれば、ユーザーが実際に選択したテーマに関係なく、XP、Vista、および (できれば) Windows 7 で動作するコードを取得できます。

ただし、生の Win32 を頻繁に使用しない限り、クラス名を直接使用してコントロールを作成することはあまりないでしょう。クラス名は、MSDN 全体に散りばめられています。通常、プラットフォーム SDK の「CommCtrl.h」ファイルから始めるのが適切です。このファイルには、多数のファイルが含まれており、個々のコモン コントロールに関する MSDN ヘルプで常に説明されています。また、.rc ファイルをテキスト エディターで開いてダイアログがどのように定義されているかを調べることで、それらを学習することもできます。これらには、コントロールのクラス名が含まれています。

于 2008-10-20T06:30:24.650 に答える
4

クラス名はテーマによって異なります。たとえば、OpenThemeDataのドキュメントには次のように記載されています。

Aero テーマのクラス名は、Microsoft Windows ソフトウェア開発キット (SDK) の Include フォルダーにある AeroStyle.xml で定義されます。

于 2008-10-20T05:25:17.433 に答える
0

XP でさえ終了しない Aero とは何の関係もありません。OpenThemeData() のソース コードを参照してください。

于 2008-10-20T13:26:14.873 に答える