- - PR -
Windowsクラス内でWndProcを使いたい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-02-03 15:22
こんにちは。初心者で申し訳ないのですが、よろしくお願いします。
現在C#でスクリーンキーボードのようなものを作っています。 WndProcを使って、ウィンドウをアクティブにならないようにしたいのですが、 下のようにしても、WndProcにエラーが出てしまします。 ---------------------------------------------------------- using System; using System.Windows; using System.Windows.Forms; using System.Drawing; : : public partial class Window1 : Window { : : // ウィンドウがアクティブにならないようにする protected override void WndProc(ref Message m) { const int WM_MOUSEACTIVATE = 0x21; const int MA_NOACTIVATE = 3; if( m.Msg == WM_MOUSEACTIVATE) { m.Result = new IntPtr(MA_NOACTIVATE); return; } base.WndProc(ref m); } ---------------------------------------------------------- 「protected override void WndProc(ref Message m)」の部分で 'MouseControll.Window1.WindProc(ref System.Windows.Forms.Message)':オーバーライドする適切なメソッドが見つかりませんでした。 「base.WndProc(ref m);」の部分で 'System.Windows.Window' に 'WndProc' の定義がありません。 と出てきてします。 もしわかる方がいらっしゃいましたら、ご教授をお願いしたいです。 よろしくお願いします。 |
|
投稿日時: 2009-02-03 15:50
継承しているクラスが
ControlじゃなくてWindowだからでは? |
|
投稿日時: 2009-02-03 23:18
さっそくのご返答ありがとうございます。
Windowを継承したクラスで使いたかったので、このように記述していましたが 検索しても出てこなかったのでやはりWindowクラス下だとできないのでしょうか? 検索でよく出てくるのは public class Form1 : System.Windows.Forms.Form 等が多いのでFormクラスでないと使えないのかとも思ったのですが…。 もう少し試行錯誤してみます。 ありがとうございます。 |
|
投稿日時: 2009-02-04 17:51
思うも何も実際にメンバの一覧を見た方が早いですよね。
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1