2011-05-25 8 views
1

私はInternet Explorerのツールバーを開発しています。私はツールバーにコンボボックス を作成したいと思います。Windows 7のスタイルは、Internet Explorerのツールバーのコンボボックスのために、どのように?

HWND combobox1=CreateWindow(_T("COMBOBOX"), _T("combobox"), WS_BORDER | 
     WS_VISIBLE | WS_CHILD | CBS_DROPDOWN, 10, 0, 200, 
     250, m_hWnd, (HMENU) NULL,NULL , NULL); 

はそれが正常に動作しますが、コンボボックスは、Windowsクラシックな方法でスタイル設定され、そして私はそれがWindowsのAeroテーマを使用したいです。私はこれを試してみた:

#pragma comment(linker,"\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")` 

Image

しかし、何も変わりません。 (私はこれを単純なWin32アプリケーションで試してみましたが、スタイルは正常に機能しましたが、ツールバーのDLLではスタイルが設定されません)

Here's a simple example

+1

実際の質問はありません。 ZIPファイルへのリンクを投稿しないでください。 –

+0

どのように私は他の人の例を得ることができますか? –

答えて

2

別のプロセスにロードされたDLLにcomctl32マニフェストを追加しても、EXEによって設定されたデフォルトのアクティブ化コンテキストには影響しません。

代わりに、DLLを呼び出すときにDLLのアクティベーションコンテキストをアクティブにする必要があります。 CreateActCtx、ActivateActCtxを参照してください。シャットダウン時にIEおよびReleaseActCtxに戻る前に、各メソッドでDeactivateActCtxを行います。

これを安く簡単に行う方法は、ISOLATION_AWARE_ENABLEDです。

Martyn

+0

Martyn plz help)あなたは私の簡単な例を変更できますか?私はCreateActCtxについてのグーグルで、私の例をどのように変更するのか分からない –

+0

悲しいことに、私はそれを行う時間がありません。しかし、ISOLATION_AWARE_ENABLEDを検索すると、比較的単純なアプローチが表示されます。また、そのブラウザを追加する必要があります。ツールバーはセキュリティに敏感で、パフォーマンスに敏感なコンポーネントです。あなたがWin32に慣れていないなら、あなたのツールバーが安全であることを保証するための地元のメンターを探す必要があるでしょう。 –

+0

fnks ISOLATION_AWARE_ENABLEDに関する情報を見つけて問題を解決しました –