質問させていただきます。
環境:
Windows XP SP2
Visual C++ 6.0 SP6
Platform SDK Feb 2003
質問:
ActiveX コントロールに Visual Style を適用したいと思い、
(1)
リソースファイルに下記のように記述し、
/////////////////////////////////////////////////////////////////////////////
//
// 24
//
1 24 "XML\\VisualStyle.xml"
(2)
下記のサイトで紹介されているような XML をリソースに組み込み、
http://msdn2.microsoft.com/en-us/library/ms997646.aspx
(3)
ActiveX コントロールのコンストラクタで、
::InitCommonControls() をコールしているのですが、
Visual Style が適用されません。
何かご存知でしたら、ご指導頂けませんでしょうか?
欲しい機能と採用されている方法に違いがあるような・・・
ActiveX OCX の見栄えを制御したいと言うことでしょうか?
であれば、xxxxCtrl.cpp のコンストラクタで、コントロール
のサイズを設定し、OnDrawで、OCXの見栄えを描画させる。
と言う流れになろうかと。
外していたらすいません・・・
※ Visual Style については、採用したことがありません
ので、その該当URLの内容を熟読しないと解りません。
推測するに、そのXMLファイルの内容を読み取って、
結果的にオーナードロウ(OnDrawで自分で処理する)
ことになろうかと・・・
ただURLの内容から・・・
Using Visual Styles with a Custom Control
Enabling Owner Drawn Controls to Use Visual Styles
の両項目に該当するように思われますが・・・
以上。
OCXでは無いのですが・・・
ttp://www.codeproject.com/cpp/AddXpStyle.asp
これ参考になりませんか?
他にもありましたが、多分、できるように思われます。
以上。
オショウ様、早速のご返事ありがとうございます。
普通の exe と dll では、Visual Style の適用に成功しているのですが、
ocx ではいろいろ試しているのですが、うまくいかない状況です。
> ttp://www.codeproject.com/cpp/AddXpStyle.asp
教えていただいたサイトで示されている方法は、
まだ読みきってはいないのですが、
あとからリソースに manifest を注入するといった方法のようですね。
この方法は試したことがないので、挑戦してみます。
OCXなら、リソースIDが1じゃないと思う。
ISOLATIONAWARE_MANIFEST_RESOURCE_ID(2)かなぁ。
これでどうだろう?
http://support.microsoft.com/kb/830033/ja
シャノンさん、
貴重な情報ありがとうございました。
おかげさまで、
VisualStyle を ActiveX コントロールに Visual Style を適用することができました。
シャノンさん、オショウさん、
ありがとうございました。
ツイート | ![]() |