Beispiel #1
0
 public WindowMessage(IntPtr hWnd, WinApi.MessageType messageType, IntPtr wParam, IntPtr lParam) : this()
 {
     HWnd        = hWnd;
     MessageType = messageType;
     WParam      = wParam;
     LParam      = lParam;
 }
Beispiel #2
0
        private static IntPtr WndProc(IntPtr hWnd, WinApi.MessageType msg, IntPtr wParam, IntPtr lParam)
        {
            Console.WriteLine(msg);
            if (msg == WinApi.MessageType.WM_PAINT)
            {
                //Console.WriteLine(msg + " " + DateTime.Now);
            }

            if (msg == WinApi.MessageType.WM_MOVE)
            {
                //WinApi.User32.SendMessage(_hWnd, WinApi.MessageType.WM_PAINT, IntPtr.Zero, IntPtr.Zero);
            }

            switch (msg)
            {
            //case WinApi.MessageType.WM_NCHITTEST:
            //case WinApi.MessageType.HDM_HITTEST:
            //    return (IntPtr) WinApi.User32.HitTestResult.HTNOWHERE;
            //    WinApi.User32.HitTestResult hitTestResult = (WinApi.User32.HitTestResult) WinApi.User32.DefWindowProc(hWnd, msg, wParam, lParam);
            //    if (hitTestResult == WinApi.User32.HitTestResult.HTCLIENT) {
            //        return (IntPtr) WinApi.User32.HitTestResult.HTTRANSPARENT;
            //    }
            //    Console.WriteLine(hitTestResult);
            //    return (IntPtr) hitTestResult;
            //    break;
            ////case WinApi.MessageType.WM_NCLBUTTONDOWN:
            ////    if (wParam != (IntPtr) HT_CAPTION)
            ////        return WinApi.User32.DefWindowProc(hWnd, msg, wParam, lParam);

            ////    _isDragging = true;

            ////    WinApi.User32.SetCapture(hWnd);
            ////    WinApi.User32.GetWindowRect(_hWnd, out _downWndRect);
            ////    _downMousePos = GetCursorPos(lParam);

            ////    return IntPtr.Zero;
            //case WinApi.MessageType.WM_MOUSEMOVE:
            //    if (!_isDragging)
            //        return WinApi.User32.DefWindowProc(hWnd, msg, wParam, lParam);

            //    WinApi.POINT cursorPos = GetCursorPos(lParam);
            //    WinApi.User32.ClientToScreen(hWnd, ref cursorPos);
            //    UpdatePos(cursorPos);

            //    return IntPtr.Zero;
            //case WinApi.MessageType.WM_LBUTTONUP:
            //    if (_isDragging) {
            //        _isDragging = false;

            //        WinApi.User32.ReleaseCapture();
            //        return IntPtr.Zero;
            //    }

            //    return WinApi.User32.DefWindowProc(hWnd, msg, wParam, lParam);
            default:
                return(WinApi.User32.DefWindowProc(hWnd, msg, wParam, lParam));
            }
        }
 private IntPtr SendMessage(WinApi.MessageType msg, int wparam, int lparam)
 {
     return(WinApi.User32.SendMessage(Handle, msg, (IntPtr)wparam, (IntPtr)lparam));
 }
 private IntPtr SendMessage(WinApi.MessageType msg, IntPtr wparam, IntPtr lparam)
 {
     return(WinApi.User32.SendMessage(Handle, msg, wparam, lparam));
 }
        private IntPtr WndProcInternal(IntPtr hWnd, WinApi.MessageType msg, IntPtr wParam, IntPtr lParam)
        {
            WindowMessage message = new WindowMessage(hWnd, msg, wParam, lParam);

            return(WndProc(ref message));
        }