NativeWindow.WndProc メソッド
ウィンドウに関連付けられている既定のウィンドウ プロシージャを呼び出します。
Protected Overridable Sub WndProc( _
ByRef m As Message _)
[C#]
protected virtual void WndProc( ref Messagem);
[C++]
protected: virtual void WndProc(Message* m);
[JScript]
protected function WndProc(
m : Message);
パラメータ
- m
現在の Windows メッセージに関連付けられている Message 。
解説
このメソッドは、ウィンドウ メッセージがウィンドウのハンドルに送信されると呼び出されます。
継承時の注意: 特定のメッセージ処理を実装するには、このメソッドをオーバーライドします。未処理のメッセージの base.WndProc を呼び出します。
使用例
[Visual Basic, C#, C++] ウィンドウ プロシージャでオペレーティング システムのウィンドウ メッセージを受け取る方法を次の例に示します。この例では、これを達成するために、 NativeWindow から継承するクラスを作成します。
[Visual Basic, C#, C++] MyNativeWindowListener
クラスは、コンストラクタに渡されたフォームのウィンドウ プロシージャにフックし、 WndProc メソッドをオーバーライドして WM_ACTIVATEAPP
ウィンドウ メッセージを受け取ります。このクラスでは、 NativeWindow が使用するウィンドウ ハンドルを識別するために AssignHandle メソッドと ReleaseHandle メソッドを使用する方法を示しています。このハンドルは、 Control.HandleCreated イベントと Control.HandleDestroyed イベントを基に割り当てられます。 WM_ACTIVATEAPP
ウィンドウ メッセージが受信されると、このクラスは form1
ApplicationActivated
メソッドを呼び出します。
[Visual Basic, C#, C++] このコードは、 NativeWindow クラスの概要で紹介されている例からの抜粋です。簡略にするため、コードの一部は示されていません。コード全体については、 NativeWindow を参照してください。
' NativeWindow class to listen to operating system messages.
Public Class MyNativeWindowListener
Inherits NativeWindow
' Constant value was found in the "windows.h" header file.
Private Const WM_ACTIVATEAPP As Integer = &H1C
Private parent As Form1
Public Sub New(ByVal parent As Form1)
AddHandler parent.HandleCreated, AddressOf Me.OnHandleCreated
AddHandler parent.HandleDestroyed, AddressOf Me.OnHandleDestroyed
Me.parent = parent
End Sub
' Listen for the control's window creation and hook into it.
Private Sub OnHandleCreated(ByVal sender As Object, ByVal e As EventArgs)
' Window is now created, assign handle to NativeWindow.
AssignHandle(CType(sender, Form).Handle)
End Sub
Private Sub OnHandleDestroyed(ByVal sender As Object, ByVal e As EventArgs)
' Window was destroyed, release hook.
ReleaseHandle()
End Sub
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Protected Overrides Sub WndProc(ByRef m As Message)
' Listen for operating system messages
Select Case (m.Msg)
Case WM_ACTIVATEAPP
' Notify the form that this message was received.
' Application is activated or deactivated,
' based upon the WParam parameter.
parent.ApplicationActived(m.WParam.ToInt32() <> 0)
End Select
MyBase.WndProc(m)
End Sub
End Class
[C#]
// NativeWindow class to listen to operating system messages.
public class MyNativeWindowListener: NativeWindow{
// Constant value was found in the "windows.h" header file.
private const int WM_ACTIVATEAPP = 0x001C;
private Form1 parent;
public MyNativeWindowListener(Form1 parent){
parent.HandleCreated += new EventHandler(this.OnHandleCreated);
parent.HandleDestroyed+= new EventHandler(this.OnHandleDestroyed);
this.parent = parent;
}
// Listen for the control's window creation and then hook into it.
internal void OnHandleCreated(object sender, EventArgs e){
// Window is now created, assign handle to NativeWindow.
AssignHandle(((Form1)sender).Handle);
}
internal void OnHandleDestroyed(object sender, EventArgs e) {
// Window was destroyed, release hook.
ReleaseHandle();
}
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")]
protected override void WndProc(ref Message m){
// Listen for operating system messages
switch (m.Msg){
case WM_ACTIVATEAPP:
// Notify the form that this message was received.
// Application is activated or deactivated,
// based upon the WParam parameter.
parent.ApplicationActived(((int)m.WParam != 0));
break;
}
base.WndProc(ref m);
}
}
[C++]
// NativeWindow class to listen to operating system messages.
__gc class MyNativeWindowListener : public NativeWindow {
// Constant value was found in the S"windows.h" header file.
private:
const static int WM_ACTIVATEAPP = 0x001C;
Form1* parent;
public:
MyNativeWindowListener(Form1* parent) {
parent->HandleCreated += new EventHandler(this, &MyNativeWindowListener::OnHandleCreated);
parent->HandleDestroyed += new EventHandler(this, &MyNativeWindowListener::OnHandleDestroyed);
this->parent = parent;
}
public private:
// Listen for the control's window creation and then hook into it.
void OnHandleCreated(Object* sender, EventArgs* /*e*/) {
// Window is now created, assign handle to NativeWindow.
AssignHandle((dynamic_cast<Form1*>(sender))->Handle);
}
void OnHandleDestroyed(Object* /*sender*/, EventArgs* /*e*/) {
// Window was destroyed, release hook.
ReleaseHandle();
}
protected:
[System::Security::Permissions::PermissionSet(System::Security::Permissions::SecurityAction::Demand, Name="FullTrust")]
void WndProc(Message* m) {
// Listen for operating system messages
switch (m->Msg) {
case WM_ACTIVATEAPP:
// Notify the form that this message was received.
// Application is activated or deactivated,
// based upon the WParam parameter.
parent->ApplicationActived(((int)m->WParam != 0));
break;
}
NativeWindow::WndProc(m);
}
};
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
NativeWindow クラス | NativeWindow メンバ | System.Windows.Forms 名前空間 | NativeWindow | Handle | AssignHandle | CreateHandle | DestroyHandle | ReleaseHandle | Message