public WindowMessage(IntPtr hWnd, WinApi.MessageType messageType, IntPtr wParam, IntPtr lParam) : this() { HWnd = hWnd; MessageType = messageType; WParam = wParam; LParam = lParam; }
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)); }