DotNet 4.8.1 build of DotNetBar
This commit is contained in:
57
PROMS/DotNetBar Source Code/TreeGX/Interop/WinApi.cs
Normal file
57
PROMS/DotNetBar Source Code/TreeGX/Interop/WinApi.cs
Normal file
@@ -0,0 +1,57 @@
|
||||
using System.Windows.Forms;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace DevComponents.Tree.Interop
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides WinApi functions to rest of the application.
|
||||
/// </summary>
|
||||
internal class WinApi
|
||||
{
|
||||
|
||||
#region API Calls Declaration
|
||||
|
||||
[DllImport("user32")]
|
||||
private static extern bool TrackMouseEvent(ref TRACKMOUSEEVENT tme);
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
private struct TRACKMOUSEEVENT
|
||||
{
|
||||
public int cbSize;
|
||||
public uint dwFlags;
|
||||
public int dwHoverTime;
|
||||
public int hwndTrack;
|
||||
}
|
||||
|
||||
// Track Mouse Event Flags
|
||||
private const uint
|
||||
TME_HOVER=0x00000001,
|
||||
TME_LEAVE=0x00000002,
|
||||
TME_NONCLIENT=0x00000010,
|
||||
TME_QUERY=0x40000000,
|
||||
TME_CANCEL=0x80000000,
|
||||
HOVER_DEFAULT=0xFFFFFFFF;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Functions
|
||||
/// <summary>
|
||||
/// Resets Hoover timer for specified control.
|
||||
/// </summary>
|
||||
public static void ResetHover(System.Windows.Forms.Control c)
|
||||
{
|
||||
if (c==null || !c.IsHandleCreated)
|
||||
return;
|
||||
|
||||
// We need to reset hover thing since it is fired only first time mouse hovers inside the window and we need it for each of our items
|
||||
TRACKMOUSEEVENT tme = new TRACKMOUSEEVENT();
|
||||
tme.dwFlags = TME_QUERY;
|
||||
tme.hwndTrack = (int)c.Handle;
|
||||
tme.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(tme);
|
||||
TrackMouseEvent(ref tme);
|
||||
tme.dwFlags = tme.dwFlags | TME_HOVER;
|
||||
TrackMouseEvent(ref tme);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user