本文整理汇总了C#中Win32Point类的典型用法代码示例。如果您正苦于以下问题:C# Win32Point类的具体用法?C# Win32Point怎么用?C# Win32Point使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Win32Point类属于命名空间,在下文中一共展示了Win32Point类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetPosition
public static Point GetPosition()
{
var w32Mouse = new Win32Point();
GetCursorPos(ref w32Mouse);
return new Point(w32Mouse.X, w32Mouse.Y);
}
示例2: GetCursorPos
public static IntPoint GetCursorPos()
{
Win32Point position = new Win32Point(0, 0);
NativeMethods.GetCursorPos(ref position);
return new IntPoint(position.x, position.y);
}
示例3: GetMousePosition
public static int[] GetMousePosition()
{
Win32Point w32Mouse = new Win32Point();
GetCursorPos(ref w32Mouse);
int[] pos = new int[2];
pos[0] = w32Mouse.X;
pos[1] = w32Mouse.Y;
return pos;
}
示例4: GetMousePosition
/// <summary>
/// Returns the mouse cursor location. This method is necessary during
/// a drag-drop operation because the WPF mechanisms for retrieving the
/// cursor coordinates are unreliable.
/// </summary>
/// <param name="relativeTo">The Visual to which the mouse coordinates will be relative.</param>
public static Point GetMousePosition(Visual relativeTo)
{
Win32Point mouse = new Win32Point();
GetCursorPos(ref mouse);
// Using PointFromScreen instead of Dan Crevier's code (commented out below)
// is a bug fix created by William J. Roberts. Read his comments about the fix
// here: http://www.codeproject.com/useritems/ListViewDragDropManager.asp?msg=1911611#xx1911611xx
return relativeTo.PointFromScreen(new Point((double)mouse.X, (double)mouse.Y));
}
示例5: ScreenToClient
public static Point ScreenToClient(FrameworkElement element, IntPoint point)
{
PresentationSource source = PresentationSource.FromVisual(element);
Win32Point winPt = new Win32Point(point.X, point.Y);
NativeMethods.ScreenToClient(((HwndSource)source).Handle, ref winPt);
Point offset = source.CompositionTarget.TransformFromDevice.Transform(new Point(winPt.x, winPt.y));
return source.RootVisual.TransformToDescendant(element).Transform(offset);
}
示例6: ClientToScreen
public static IntPoint ClientToScreen(FrameworkElement element, Point point)
{
PresentationSource source = PresentationSource.FromVisual(element);
point = element.TransformToAncestor(source.RootVisual).Transform(point);
Point offset = source.CompositionTarget.TransformToDevice.Transform(new Point(point.X, point.Y));
Win32Point winPt = new Win32Point((int)offset.X, (int)offset.Y);
NativeMethods.ClientToScreen(((HwndSource)source).Handle, ref winPt);
return new IntPoint(winPt.x, winPt.y);
}
示例7: GetMousePosition
public static Point GetMousePosition(Visual relativeTo)
{
Win32Point mouse = new Win32Point();
GetCursorPos(ref mouse);
System.Windows.Interop.HwndSource presentationSource =
(System.Windows.Interop.HwndSource)PresentationSource.FromVisual(relativeTo);
ScreenToClient(presentationSource.Handle, ref mouse);
GeneralTransform transform = relativeTo.TransformToAncestor(presentationSource.RootVisual);
Point offset = transform.Transform(new Point(0, 0));
return new Point(mouse.X - offset.X, mouse.Y - offset.Y);
}
示例8: GetMousePosition
/// <summary>
/// Returns the mouse cursor location. This method is necessary during
/// a drag-drop operation because the WPF mechanisms for retrieving the
/// cursor coordinates are unreliable.
/// </summary>
/// <param name="relativeTo">The Visual to which the mouse coordinates will be relative.</param>
public static Point GetMousePosition( Visual relativeTo )
{
Win32Point mouse = new Win32Point();
GetCursorPos( ref mouse );
// Using PointFromScreen instead of Dan Crevier's code (commented out below)
// is a bug fix created by William J. Roberts. Read his comments about the fix
// here: http://www.codeproject.com/useritems/ListViewDragDropManager.asp?msg=1911611#xx1911611xx
return relativeTo.PointFromScreen( new Point( (double)mouse.X, (double)mouse.Y ) );
#region Commented Out
//System.Windows.Interop.HwndSource presentationSource =
// (System.Windows.Interop.HwndSource)PresentationSource.FromVisual( relativeTo );
//ScreenToClient( presentationSource.Handle, ref mouse );
//GeneralTransform transform = relativeTo.TransformToAncestor( presentationSource.RootVisual );
//Point offset = transform.Transform( new Point( 0, 0 ) );
//return new Point( mouse.X - offset.X, mouse.Y - offset.Y );
#endregion // Commented Out
}
示例9: GetMousePosition
public static Point GetMousePosition(Visual relativeTo)
{
Win32Point mouse = new Win32Point();
GetCursorPos(ref mouse);
System.Windows.Interop.HwndSource presentationSource =
(System.Windows.Interop.HwndSource)PresentationSource.FromVisual(relativeTo);
ScreenToClient(presentationSource.Handle, ref mouse);
GeneralTransform transform = relativeTo.TransformToAncestor(presentationSource.RootVisual);
Point offset = transform.Transform(new Point(0, 0));
//
// Point p = new Point(mouse.X - offset.X, mouse.Y - offset.Y);
// System.Diagnostics.Debug.WriteLine(string.Format("mouse {0:0.0}|{1:0.0} offset {2:0.0}|{3:0.0} res {4:0.0}|{5:0.0}",
// mouse.X, mouse.Y, offset.X, offset.Y, p.X, p.Y));
return new Point(mouse.X - offset.X, mouse.Y - offset.Y);
}
示例10: GetMousePosition
public static Win32Point GetMousePosition()
{
Win32Point w32Mouse = new Win32Point();
GetCursorPos(ref w32Mouse);
return w32Mouse;
}
示例11: ClientToScreen
private static extern bool ClientToScreen (IntPtr hWnd, ref Win32Point point);
示例12: OneClickComboBoxCell
public void OneClickComboBoxCell ()
{
Form form = null;
try
{
// Create a form, a text label, and a data-grid-view.
form = new Form ();
Label label = new Label ();
label.Text = "Label";
label.Parent = form;
ClickableDataGridView dgv = new ClickableDataGridView ();
dgv.Parent = form;
// Create a combo-box column.
DataGridViewComboBoxColumn cbCol = new DataGridViewComboBoxColumn ();
cbCol.HeaderText = "Name";
dgv.Columns.Add (cbCol);
// .NET requires that all possible values for combo-boxes
// in a column are added to the column.
cbCol.Items.Add ("Item1");
cbCol.Items.Add ("Item2");
cbCol.Items.Add ("Item3");
cbCol.Items.Add ("Item4");
// Set up the contents of the data-grid.
dgv.Rows.Add ("Item1");
dgv.Rows.Add ("Item2");
// Select the cell.
dgv.CurrentCell = dgv.Rows[0].Cells[0];
// Focus the data-grid-view. (Without this, its Leave
// event won't get called when something outside of the
// data-grid-view gets focused.)
dgv.Focus ();
// Show the form, let it draw.
form.Show ();
Application.DoEvents ();
// Locate the drop-down button. (This code is taken from mono-winforms,
// from the private method DataGridViewComboBoxCell.CalculateButtonArea(),
// and was then hacked mercilessly.)
Rectangle button_area = Rectangle.Empty;
{
int border = 3 /* ThemeEngine.Current.Border3DSize.Width */;
const int button_width = 16;
Rectangle text_area = dgv.GetCellDisplayRectangle (0, 0, false);
button_area.X = text_area.Right - button_width - border;
button_area.Y = text_area.Y + border;
button_area.Width = button_width;
button_area.Height = text_area.Height - 2 * border;
}
// Click on the drop-down button.
int x = button_area.X + (button_area.Width / 2);
int y = button_area.Y + (button_area.Height / 2);
if (Environment.OSVersion.Platform == PlatformID.Win32NT
&& Type.GetType ("Mono.Runtime") == null)
{
// Calling OnMouseDownInternal () in Win32 doesn't work.
// My best guess as to why is that the WinForms ComboBox
// is a wrapper around the ComCtl control, e.g. similar
// to the reason that Paint event-handlers don't work on
// TreeView. So we go through all this rigamarole to
// simulate a mouse click.
// First, get the location of the desired mouse-click, in
// data-grid-view coordinates.
Win32Point ptGlobal = new Win32Point ();
ptGlobal.x = x + dgv.Location.X;
ptGlobal.y = y + dgv.Location.Y;
// Convert that to screen coordinates.
ClientToScreen (form.Handle, ref ptGlobal);
// Move the mouse-pointer there. (Yes, this really appears
// to be necessary.)
SetCursorPos (ptGlobal.x, ptGlobal.y);
// Convert screen coordinates to mouse coordinates.
ptGlobal.x *= (65535 / SystemInformation.VirtualScreen.Width);
ptGlobal.y *= (65535 / SystemInformation.VirtualScreen.Height);
// Finally, fire a mouse-down and mouse-up event.
mouse_event (MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_ABSOLUTE,
ptGlobal.x, ptGlobal.y, 0, 0);
mouse_event (MOUSEEVENTF_LEFTUP|MOUSEEVENTF_ABSOLUTE,
ptGlobal.x, ptGlobal.y, 0, 0);
// Let the system process these events.
Application.DoEvents ();
}
else
{
// And this is how the same code is done under Linux.
// (No one should wonder why I prefer Mono to MS Windows .NET ;-)
MouseEventArgs me = new MouseEventArgs (MouseButtons.Left, 1, x, y, 0);
//.........这里部分代码省略.........
示例13: GetMousePosition
public static Vector2 GetMousePosition()
{
Win32Point w32Mouse = new Win32Point();
GetCursorPos(ref w32Mouse);
return new Vector2(w32Mouse.X, w32Mouse.Y);
}
示例14: GetCursorPos
private static extern bool GetCursorPos( ref Win32Point pt );
示例15: OnMouseMove
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
if (SettingMode)
{
Win32Point point = new Win32Point();
GetCursorPos(ref point);
this.txtPosX.Text = point.X.ToString();
this.txtPosY.Text = point.Y.ToString();
}
}