標準プロパティ画面を作るには?


玄米  2005-07-27 05:56:19  No: 16626  IP: [192.*.*.*]

Windowsの標準?のプロパティ画面のような背景が白色なプロパティ画面はどのようにつくってあるのでしょうか?

知りたいことは、
  Windowsの標準のプロパティ画面のような雛形セット?があるのかどうか
  多分、PageControlの背景を上記のように白色にするにはどうすればよいのか


です。
白色のPanelに乗せてみたりもしたのですがやはり違いました。
説明がわかりにくいかもしれませんが、その時は質問していただければできるかぎりこたえていきますので。
宜しくお願いします

編集    削除
anone  2005-07-27 06:01:22  No: 16627  IP: [192.*.*.*]

Property Sheet のことかな?

http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/propsheet/propsheet.asp?frame=true

Delphi の標準コンポにはないですね。ネットで探すとラッパがあるかも。

編集    削除
Mr.XRAY  URL  2005-07-27 09:40:31  No: 16628  IP: [192.*.*.*]

WindowsXPで,例えば[画面のプロパティ]みたいなこういうやつですか.

http://homepage2.nifty.com/Mr_XRAY/Others/TempPage021.htm

これはTabControlにPanelを配置したものです.PanelのColorをclWhite
にしています.

編集    削除
玄米  2005-07-27 10:06:57  No: 16629  IP: [192.*.*.*]

お二人ともありがとうございます。  

amoneさん
  んー、さすがにMSなので、Delphiでは無理ですよね。ラッパー探してみたりもしたのですがちょっと見つかりませんでした^^;
情報ありがとうございます

Mr.XRAYさん
  そのような感じです。Panel乗せればいいんですよね。極当たり前のことでした><
それについてはわかるのですが、タブのところは自分で描画しているのでしょうか?

編集    削除
通りすがり  2005-07-27 11:45:36  No: 16630  IP: [192.*.*.*]

TThemeManager(http://www.delphi-gems.com/ThemeManager.php)
を適用させると、PageControlの背景を白くさせることはできますね、、、
ちょっとThemeanager使うと実行ファイルが重くなるので、使いたくありませんが、、

編集    削除
anone  2005-07-27 18:31:52  No: 16631  IP: [192.*.*.*]

> んー、さすがにMSなので、Delphiでは無理ですよね。

えーと、Delphi のボタンもリストボックスもタブもリッチエディットも MS の
もののラッパですけど。VCL 独自なものは TStringGrid などの Grid 系など
ほんの少しで、ハンドルをコントロールのほとんどは Windows のコントロール
のラッパです。ですから MSDN の内容は非常に役に立ちます。

編集    削除
anone  2005-07-27 18:33:19  No: 16632  IP: [192.*.*.*]

> ハンドルをコントロールのほとんどは

意味不明でした。「ハンドルを持つコントロールのほとんどは」です。

編集    削除
Mr.XRAY  URL  2005-07-29 08:19:13  No: 16633  IP: [192.*.*.*]

>それについてはわかるのですが、タブのところは自分で描画しているのでしょうか?

失礼しました.PageControlでしたね.同じページにPageControlの例を
UPしました.方法は,玄米さんと同じですが...

>白色のPanelに乗せてみたりもしたのですがやはり違いました。

どのようにうまくいかなかったのでしょうか.

ただし,この方法は,WindowsXPの場合ではいいですが,他のWindowsの
画面のプロパティダイアログなどとは違ってしまいますね(色が).
そうなると,anoneさんのレスにあるように
CreatePropertySheetPageというAPI(usesにCommCtrlが必要)を利用する
しかないと思われます.残念ですが,こちらは使用したことがありません
ので具体的なコードを示すことはできません.

編集    削除
Mr.XRAY  URL  2005-07-29 08:34:31  No: 16634  IP: [192.*.*.*]

手順を書いてなかったので... 
(コードは1行もありません.全てオブジェクトインスペクタでの設定です)

FormにPageControlを配置します.ページを3つ追加します.
この各々のページにPanelをalClientで配置します.
この各々のPanelのColorclWhiteにします.
この各々のPanelのParentBakcgoundをFalseにします.
(色が反映されない時は何回かTrue,Falseを繰り返して下さい)

編集    削除
Mr.XRAY  URL  2005-07-29 08:36:05  No: 16635  IP: [192.*.*.*]

またまた失礼.
確認環境は,Delphi7 + WindowsXP(SP2)  です.

編集    削除