Game Development Reference
In-Depth Information
using System.Text;
using System.Windows.Forms;
namespace EditorApp
{
public class MessageHandler : IMessageFilter
{
const int WM_LBUTTONDOWN = 0x0201;
const int WM_LBUTTONUP = 0x0202;
const int WM_LBUTTONDBLCLK = 0x0203;
const int WM_RBUTTONDOWN = 0x0204;
const int WM_RBUTTONUP = 0x0205;
const int WM_RBUTTONDBLCLK = 0x0206;
const int WM_MBUTTONDOWN = 0x0207;
const int WM_MBUTTONUP = 0x0208;
const int WM_MBUTTONDBLCLK = 0x0209;
const int WM_KEYDOWN = 0x0100;
const int WM_KEYUP = 0x0101;
const int WM_SYSKEYDOWN = 0x0104;
const int WM_SYSKEYUP = 0x0105;
const int WM_CLOSE = 0x0010;
IntPtr m_formHandle;
IntPtr m_displayPanelHandle;
EditorForm m_parent;
// We take both the EditorForm
s handle and its
// displayPanel handle, since messages will sometimes be for the
// form or the display panel.
'
public MessageHandler( IntPtr formHandle,
IntPtr displayPanelHandle, EditorForm parent )
{
m_formHandle = formHandle;
m_displayPanelHandle = displayPanelHandle;
m_parent = parent;
}
public bool PreFilterMessage(ref Message m)
{
// Intercept messages only if they occur for the EditorForm
// or its display panel.
if (m.HWnd == m_displayPanelHandle
∣∣
m.HWnd == m_formHandle)
{
Search WWH ::




Custom Search