DOBON.NET DOBON.NETプログラミング掲示板過去ログ

コンポーネントから貼り付け先のハンドルを取得するには?

環境/言語:[C# VS2003、Framework1.1]
分類:[.NET]

現在System.ComponentModel.Componentを継承してコンポーネントを作成しているのですが、貼り付け先のハンドルの取得方法が分からず苦労しております。
作りたいのはNofityIconやTimerみたいなコンポーネントなんですが、そこで貼り付け先のハンドルをどうしても必要なんですが、やり方がわかりません。
Siteプロパティをオーバーライドしてどうにか出来そうな気がしますが、そこで手詰まりしております。
どなたかご教授いただけないでしょうか?よろしくお願いします。
どれだけ一般的な実装なのかは知りませんが、
http://hongliang.seesaa.net/article/15975166.html
System.Timers.Timer の SynchronizingObject の実装を真似して SynchronizingObject のデザイン時の自動設定を書いてみた(のを含む)記事です。
この記事では ISynchronizeObject ですが、ハンドルなら IWin32Window 辺りが該当インターフェイスになるでしょう。
> http://hongliang.seesaa.net/article/15975166.html

確かにこの方法だと出来るんですが、NotifyIconとかTimerを使う場合、デザイナのプロパティにはそういうプロパティないですよね?
ということは何か取得できる方法があると思うんですが、その点をよろしくお願いします。
// Timer というのが System.Windows.Forms.Timer であると仮定して。
NotifyIcon にせよ Timer にせよ、別にドロップ先のコントロールのハンドルに対してどうこうはしてませんよ。
// そうでなければ、私のような VS 使わないコーダには使えないことになってしまいます(w:
これらは内部で自分専用の WndProc 処理用の NativeWindow を持っているようです。
> これらは内部で自分専用の WndProc 処理用の NativeWindow を持っているようです。
NativeWindowについて調べましたところ、「http://ant0x.udap.jp/tips/tips_NativeWindow.htm」のHPに行き着き、何となく分かりました。ちょっとこれを元に勉強してがんばってみたいと思います。
ですので、この質問とりあえず解決ということにしたいと思います。
お世話になりました。

DOBON.NET | プログラミング道 | プログラミング掲示板