2011-09-17 15 views
-1

私は基本的にactivexがウィンドウハンドルを操作するコントロールであると仮定していましたが、実行時にウィンドウレスで非表示のMFC Activexコントロールを開発しました。ウィンドウハンドルを取得するのにGetSafeHwnd()を使用しましたが、それは動く。おそらく私は間違ったオプションを設定していた私のアクティブxを作成します。どのように私は窓を操作することができますウィンドウレスのActiveXを作成することができますhanlde?GetSafeHwnd()がActiveXコントロールでゼロを返すのはなぜですか?

+3

定義によるウィンドウレスコントロールにはウィンドウがありません。メッセージのみのウィンドウが必要ですか? –

+0

私は自分のアプリにユーザーdefienedメッセージをマップしたいと思います。 –

+0

ウィンドウを作成するコードを表示できますか? –

答えて

2

定義により、ウィンドウレスActiveXコントロールはウィンドウを持たず、その親の一部としてレンダリングされます。コントロール内のWindowsメッセージを操作する場合は、メッセージループを持つワーカースレッドを作成し、その中のメッセージを処理できます。メッセージループを行うには、ウィンドウは必要なく、スレッドだけは必要ありません。このソリューションは、ウィンドウレスコントロールまたは任意のCOMコンポーネントで実装できます。

また、ウィンドウのActiveXコントロールのプロパティを変更して使用することもできます。

+0

しかし、私のActiveXは、必要なSDKを使用しています。ユーザー定義のメッセージを生成するためのハンドル。私は入力パラメータとして親ハンドルを使用しようとし、そのSDKに渡しましたが、私のコントロールは、SDKによって生成されたメッセージを受信しませんでした –

+1

@ m-abdiウィンドウが必要です。あなたはそれを持っているようには見えません。 1つを作る!あなたのコードでは推測できません。このように私たちにあなたを援助しようと奮闘させてはいけません。 –

+0

@David:Dご協力いただきありがとうございます。 –

関連する問題