AcitiveX コントロール に Visual Style を適用するには?

解決


かるび  2007-07-04 18:57:44  No: 65581  IP: 192.*.*.*

質問させていただきます。

環境:
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 が適用されません。
何かご存知でしたら、ご指導頂けませんでしょうか?

編集 削除
オショウ  2007-07-05 00:30:11  No: 65582  IP: 192.*.*.*

欲しい機能と採用されている方法に違いがあるような・・・

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
    の両項目に該当するように思われますが・・・

以上。

編集 削除
オショウ  2007-07-05 00:58:26  No: 65583  IP: 192.*.*.*

OCXでは無いのですが・・・

ttp://www.codeproject.com/cpp/AddXpStyle.asp

これ参考になりませんか?
他にもありましたが、多分、できるように思われます。

以上。

編集 削除
かるび  2007-07-05 11:12:33  No: 65584  IP: 192.*.*.*

オショウ様、早速のご返事ありがとうございます。

普通の exe と dll では、Visual Style の適用に成功しているのですが、
ocx ではいろいろ試しているのですが、うまくいかない状況です。

> ttp://www.codeproject.com/cpp/AddXpStyle.asp
教えていただいたサイトで示されている方法は、
まだ読みきってはいないのですが、
あとからリソースに manifest を注入するといった方法のようですね。
この方法は試したことがないので、挑戦してみます。

編集 削除
シャノン  2007-07-10 11:47:20  No: 65585  IP: 192.*.*.*

OCXなら、リソースIDが1じゃないと思う。
ISOLATIONAWARE_MANIFEST_RESOURCE_ID(2)かなぁ。

これでどうだろう?
http://support.microsoft.com/kb/830033/ja

編集 削除
かるび  2007-07-20 14:11:11  No: 65586  IP: 192.*.*.*

シャノンさん、
貴重な情報ありがとうございました。

おかげさまで、
VisualStyle を ActiveX コントロールに Visual Style を適用することができました。

シャノンさん、オショウさん、
ありがとうございました。

編集 削除