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

解決


かるび  2007-07-05 03:57:44  No: 65581

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

環境:
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 09:30:11  No: 65582

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

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 09:58:26  No: 65583

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

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

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

以上。


かるび  2007-07-05 20:12:33  No: 65584

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

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

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


シャノン  2007-07-10 20:47:20  No: 65585

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

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


かるび  2007-07-20 23:11:11  No: 65586

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

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加