2010-12-03 2 views
0

どうすればフォーム上にマウスを置いてもフォームがそこにないようになり、背後にあるもの(私のアプリケーションの一部になる)はすべてのマウス入力を受け取ります。私が作ろうとしているのは、基本的にユーザーがクリックする必要があるコントロールを強調するチュートリアルです。私はクリックを生成する方法を知っていますが、可能なすべてのマウス入力にその機能を拡張したいと思います。私はWndProcを私のフォームで処理しようとしましたが、何が遅れていてもメッセージを送信しましたが、それは混乱でした。これを行うための良い方法はありますか?マウス入力をスキップ(またはバックグラウンドに送信)する半透明のフォーム?

また、私のフォームを透明に保ち、マウス入力を受け取るべきコントロールの周りにペイントすることもできますが、ハイライトなもの(コントロールを半透明ブラシでペイントする)が可能かどうかを知りたいだけです。

答えて

0

親ウィンドウのパラメータを取るコンストラクタでチュートリアルウィンドウ(半透明)を作成します。 ウィンドウのMouseDown/MouseUpイベントで、親のマウスダウン/マウスアップイベントハンドラを呼び出します。

パブリックパーシャルクラスParentWindow:ウィンドウ {パブリックParentWindow(){ のInitializeComponent(); }

private void testButton_Click(object sender, RoutedEventArgs e) 
{ 
    TutorialWindow tutorialWindow = new TutorialWindow(this); 
    tutorialWindow.Show(); 
} 

public void Window_MouseDown(object sender, MouseButtonEventArgs e) 
{ 
    // Do something 
} 

}

そしてTutorialWindowクラス

パブリックパーシャルクラスTutorialWindow:ウィンドウ {プライベートParentWindow親。チュートリアルウィンドウの

public TutorialWindow(ParentWindow parent) 
{ 
    InitializeComponent(); 
    this.parent = parent; 
} 

private void Window_MouseDown(object sender, MouseButtonEventArgs e) 
{ 
    this.parent.Window_MouseDown(sender, e); 
} 

}

性質は、それが半透明とウィンドウ内の離れたユーザーがクリックしても「フェード」にするために変更することができます。

関連する問題