123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757 |
- // ***********************************************************************
- // Assembly : HZH_Controls
- // Created : 08-08-2019
- //
- // ***********************************************************************
- // <copyright file="UCTextBoxEx.cs">
- // Copyright by Huang Zhenghui(黄正辉) All, QQ group:568015492 QQ:623128629 Email:623128629@qq.com
- // </copyright>
- //
- // Blog: https://www.cnblogs.com/bfyx
- // GitHub:https://github.com/kwwwvagaa/NetWinformControl
- // gitee:https://gitee.com/kwwwvagaa/net_winform_custom_control.git
- //
- // If you use this code, please keep this note.
- // ***********************************************************************
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Drawing;
- using System.Data;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.Runtime.InteropServices;
- using System.Diagnostics;
- using System.Threading;
- namespace HZH_Controls.Controls
- {
- /// <summary>
- /// Class UCTextBoxEx.
- /// Implements the <see cref="HZH_Controls.Controls.UCControlBase" />
- /// </summary>
- /// <seealso cref="HZH_Controls.Controls.UCControlBase" />
- [DefaultEvent("TextChanged")]
- public partial class UCTextBoxEx : UCControlBase
- {
- /// <summary>
- /// The m is show clear BTN
- /// </summary>
- private bool m_isShowClearBtn = true;
- /// <summary>
- /// The m int selection start
- /// </summary>
- int m_intSelectionStart = 0;
- /// <summary>
- /// The m int selection length
- /// </summary>
- int m_intSelectionLength = 0;
- /// <summary>
- /// 功能描述:是否显示清理按钮
- /// 作 者:HZH
- /// 创建日期:2019-02-28 16:13:52
- /// </summary>
- /// <value><c>true</c> if this instance is show clear BTN; otherwise, <c>false</c>.</value>
- [Description("是否显示清理按钮"), Category("自定义")]
- public bool IsShowClearBtn
- {
- get { return m_isShowClearBtn; }
- set
- {
- m_isShowClearBtn = value;
- if (value)
- {
- btnClear.Visible = !(txtInput.Text == "\r\n") && !string.IsNullOrEmpty(txtInput.Text);
- }
- else
- {
- btnClear.Visible = false;
- }
- }
- }
- /// <summary>
- /// The m is show search BTN
- /// </summary>
- private bool m_isShowSearchBtn = false;
- /// <summary>
- /// 是否显示查询按钮
- /// </summary>
- /// <value><c>true</c> if this instance is show search BTN; otherwise, <c>false</c>.</value>
- [Description("是否显示查询按钮"), Category("自定义")]
- public bool IsShowSearchBtn
- {
- get { return m_isShowSearchBtn; }
- set
- {
- m_isShowSearchBtn = value;
- btnSearch.Visible = value;
- }
- }
- /// <summary>
- /// Gets or sets a value indicating whether this instance is show keyboard.
- /// </summary>
- /// <value><c>true</c> if this instance is show keyboard; otherwise, <c>false</c>.</value>
- [Description("是否显示键盘"), Category("自定义")]
- public bool IsShowKeyboard
- {
- get
- {
- return btnKeybord.Visible;
- }
- set
- {
- btnKeybord.Visible = value;
- }
- }
- /// <summary>
- /// 获取或设置控件显示的文字的字体。
- /// </summary>
- /// <value>The font.</value>
- /// <PermissionSet>
- /// <IPermission class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
- /// <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
- /// <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode, ControlEvidence" />
- /// <IPermission class="System.Diagnostics.PerformanceCounterPermission, System, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
- /// </PermissionSet>
- [Description("字体"), Category("自定义")]
- public new Font Font
- {
- get
- {
- return this.txtInput.Font;
- }
- set
- {
- this.txtInput.Font = value;
- }
- }
- /// <summary>
- /// Gets or sets the type of the input.
- /// </summary>
- /// <value>The type of the input.</value>
- [Description("输入类型"), Category("自定义")]
- public TextInputType InputType
- {
- get { return txtInput.InputType; }
- set { txtInput.InputType = value; }
- }
- /// <summary>
- /// 水印文字
- /// </summary>
- /// <value>The prompt text.</value>
- [Description("水印文字"), Category("自定义")]
- public string PromptText
- {
- get
- {
- return this.txtInput.PromptText;
- }
- set
- {
- this.txtInput.PromptText = value;
- }
- }
- /// <summary>
- /// Gets or sets the prompt font.
- /// </summary>
- /// <value>The prompt font.</value>
- [Description("水印字体"), Category("自定义")]
- public Font PromptFont
- {
- get
- {
- return this.txtInput.PromptFont;
- }
- set
- {
- this.txtInput.PromptFont = value;
- }
- }
- /// <summary>
- /// Gets or sets the color of the prompt.
- /// </summary>
- /// <value>The color of the prompt.</value>
- [Description("水印颜色"), Category("自定义")]
- public Color PromptColor
- {
- get
- {
- return this.txtInput.PromptColor;
- }
- set
- {
- this.txtInput.PromptColor = value;
- }
- }
- /// <summary>
- /// 获取或设置一个值,该值指示当输入类型InputType=Regex时,使用的正则表达式。
- /// </summary>
- /// <value>The regex pattern.</value>
- [Description("获取或设置一个值,该值指示当输入类型InputType=Regex时,使用的正则表达式。")]
- public string RegexPattern
- {
- get
- {
- return this.txtInput.RegexPattern;
- }
- set
- {
- this.txtInput.RegexPattern = value;
- }
- }
- /// <summary>
- /// 当InputType为数字类型时,能输入的最大值
- /// </summary>
- /// <value>The maximum value.</value>
- [Description("当InputType为数字类型时,能输入的最大值。")]
- public decimal MaxValue
- {
- get
- {
- return this.txtInput.MaxValue;
- }
- set
- {
- this.txtInput.MaxValue = value;
- }
- }
- /// <summary>
- /// 当InputType为数字类型时,能输入的最小值
- /// </summary>
- /// <value>The minimum value.</value>
- [Description("当InputType为数字类型时,能输入的最小值。")]
- public decimal MinValue
- {
- get
- {
- return this.txtInput.MinValue;
- }
- set
- {
- this.txtInput.MinValue = value;
- }
- }
- /// <summary>
- /// 当InputType为数字类型时,能输入的最小值
- /// </summary>
- /// <value>The length of the decimal.</value>
- [Description("当InputType为数字类型时,小数位数。")]
- public int DecLength
- {
- get
- {
- return this.txtInput.DecLength;
- }
- set
- {
- this.txtInput.DecLength = value;
- }
- }
- /// <summary>
- /// The key board type
- /// </summary>
- private KeyBoardType keyBoardType = KeyBoardType.UCKeyBorderAll_EN;
- /// <summary>
- /// Gets or sets the type of the key board.
- /// </summary>
- /// <value>The type of the key board.</value>
- [Description("键盘打开样式"), Category("自定义")]
- public KeyBoardType KeyBoardType
- {
- get { return keyBoardType; }
- set { keyBoardType = value; }
- }
- /// <summary>
- /// Occurs when [search click].
- /// </summary>
- [Description("查询按钮点击事件"), Category("自定义")]
- public event EventHandler SearchClick;
- /// <summary>
- /// Occurs when [text changed].
- /// </summary>
- [Description("文本改变事件"), Category("自定义")]
- public new event EventHandler TextChanged;
- /// <summary>
- /// Occurs when [keyboard click].
- /// </summary>
- [Description("键盘按钮点击事件"), Category("自定义")]
- public event EventHandler KeyboardClick;
- /// <summary>
- /// Gets or sets the input text.
- /// </summary>
- /// <value>The input text.</value>
- [Description("文本"), Category("自定义")]
- public string InputText
- {
- get
- {
- return txtInput.Text;
- }
- set
- {
- txtInput.Text = value;
- }
- }
- /// <summary>
- /// The focus border color
- /// </summary>
- private Color focusBorderColor = Color.FromArgb(255, 77, 59);
- /// <summary>
- /// Gets or sets the color of the focus border.
- /// </summary>
- /// <value>The color of the focus border.</value>
- [Description("获取焦点时边框颜色,当IsFocusColor=true有效"), Category("自定义")]
- public Color FocusBorderColor
- {
- get { return focusBorderColor; }
- set { focusBorderColor = value; }
- }
- /// <summary>
- /// The is focus color
- /// </summary>
- private bool isFocusColor = true;
- /// <summary>
- /// Gets or sets a value indicating whether this instance is focus color.
- /// </summary>
- /// <value><c>true</c> if this instance is focus color; otherwise, <c>false</c>.</value>
- [Description("获取焦点是否变色"), Category("自定义")]
- public bool IsFocusColor
- {
- get { return isFocusColor; }
- set { isFocusColor = value; }
- }
- /// <summary>
- /// The fill color
- /// </summary>
- private Color _FillColor;
- /// <summary>
- /// 当使用边框时填充颜色,当值为背景色或透明色或空值则不填充
- /// </summary>
- /// <value>The color of the fill.</value>
- public new Color FillColor
- {
- get
- {
- return _FillColor;
- }
- set
- {
- _FillColor = value;
- base.FillColor = value;
- this.txtInput.BackColor = value;
- }
- }
- /// <summary>
- /// Initializes a new instance of the <see cref="UCTextBoxEx" /> class.
- /// </summary>
- public UCTextBoxEx()
- {
- InitializeComponent();
- txtInput.SizeChanged += UCTextBoxEx_SizeChanged;
- this.SizeChanged += UCTextBoxEx_SizeChanged;
- txtInput.GotFocus += (a, b) =>
- {
- if (isFocusColor)
- this.RectColor = focusBorderColor;
- };
- txtInput.LostFocus += (a, b) =>
- {
- if (isFocusColor)
- this.RectColor = Color.FromArgb(220, 220, 220);
- };
- }
- /// <summary>
- /// Handles the SizeChanged event of the UCTextBoxEx control.
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
- void UCTextBoxEx_SizeChanged(object sender, EventArgs e)
- {
- this.txtInput.Location = new Point(this.txtInput.Location.X, (this.Height - txtInput.Height) / 2);
- }
- /// <summary>
- /// Handles the TextChanged event of the txtInput control.
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
- private void txtInput_TextChanged(object sender, EventArgs e)
- {
- if (m_isShowClearBtn)
- {
- btnClear.Visible = !(txtInput.Text == "\r\n") && !string.IsNullOrEmpty(txtInput.Text);
- }
- if (TextChanged != null)
- {
- TextChanged(sender, e);
- }
- }
- /// <summary>
- /// Handles the MouseDown event of the btnClear control.
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="MouseEventArgs" /> instance containing the event data.</param>
- private void btnClear_MouseDown(object sender, MouseEventArgs e)
- {
- txtInput.Clear();
- txtInput.Focus();
- }
- /// <summary>
- /// Handles the MouseDown event of the btnSearch control.
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="MouseEventArgs" /> instance containing the event data.</param>
- private void btnSearch_MouseDown(object sender, MouseEventArgs e)
- {
- if (SearchClick != null)
- {
- SearchClick(sender, e);
- }
- }
- /// <summary>
- /// The m FRM anchor
- /// </summary>
- Forms.FrmAnchor m_frmAnchor;
- /// <summary>
- /// Handles the MouseDown event of the btnKeybord control.
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="MouseEventArgs" /> instance containing the event data.</param>
- private void btnKeybord_MouseDown(object sender, MouseEventArgs e)
- {
- if (keyBoardType == HZH_Controls.Controls.KeyBoardType.Null)
- return;
- m_intSelectionStart = this.txtInput.SelectionStart;
- m_intSelectionLength = this.txtInput.SelectionLength;
- this.FindForm().ActiveControl = this;
- this.FindForm().ActiveControl = this.txtInput;
- switch (keyBoardType)
- {
- case KeyBoardType.UCKeyBorderAll_EN:
- if (m_frmAnchor == null)
- {
- if (m_frmAnchor == null)
- {
- UCKeyBorderAll key = new UCKeyBorderAll();
- key.CharType = KeyBorderCharType.CHAR;
- key.RetractClike += (a, b) =>
- {
- m_frmAnchor.Hide();
- };
- m_frmAnchor = new Forms.FrmAnchor(this, key);
- m_frmAnchor.VisibleChanged += (a, b) =>
- {
- if (m_frmAnchor.Visible)
- {
- this.txtInput.SelectionStart = m_intSelectionStart;
- this.txtInput.SelectionLength = m_intSelectionLength;
- }
- };
- }
- }
- break;
- case KeyBoardType.UCKeyBorderAll_Num:
- if (m_frmAnchor == null)
- {
- UCKeyBorderAll key = new UCKeyBorderAll();
- key.CharType = KeyBorderCharType.NUMBER;
- key.RetractClike += (a, b) =>
- {
- m_frmAnchor.Hide();
- };
- m_frmAnchor = new Forms.FrmAnchor(this, key);
- m_frmAnchor.VisibleChanged += (a, b) =>
- {
- if (m_frmAnchor.Visible)
- {
- this.txtInput.SelectionStart = m_intSelectionStart;
- this.txtInput.SelectionLength = m_intSelectionLength;
- }
- };
- }
- break;
- case KeyBoardType.UCKeyBorderNum:
- if (m_frmAnchor == null)
- {
- UCKeyBorderNum key = new UCKeyBorderNum();
- m_frmAnchor = new Forms.FrmAnchor(this, key);
- m_frmAnchor.VisibleChanged += (a, b) =>
- {
- if (m_frmAnchor.Visible)
- {
- this.txtInput.SelectionStart = m_intSelectionStart;
- this.txtInput.SelectionLength = m_intSelectionLength;
- }
- };
- }
- break;
- case HZH_Controls.Controls.KeyBoardType.UCKeyBorderHand:
- m_frmAnchor = new Forms.FrmAnchor(this, new Size(504, 361));
- m_frmAnchor.VisibleChanged += m_frmAnchor_VisibleChanged;
- m_frmAnchor.Disposed += m_frmAnchor_Disposed;
- Panel p = new Panel();
- p.Dock = DockStyle.Fill;
- p.Name = "keyborder";
- m_frmAnchor.Controls.Add(p);
- UCBtnExt btnDelete = new UCBtnExt();
- btnDelete.Name = "btnDelete";
- btnDelete.Size = new Size(80, 28);
- btnDelete.FillColor = Color.White;
- btnDelete.IsRadius = false;
- btnDelete.ConerRadius = 1;
- btnDelete.IsShowRect = true;
- btnDelete.RectColor = Color.FromArgb(189, 197, 203);
- btnDelete.Location = new Point(198, 332);
- btnDelete.BtnFont = new System.Drawing.Font("微软雅黑", 8);
- btnDelete.BtnText = "删除";
- btnDelete.BtnClick += (a, b) =>
- {
- SendKeys.Send("{BACKSPACE}");
- };
- m_frmAnchor.Controls.Add(btnDelete);
- btnDelete.BringToFront();
- UCBtnExt btnEnter = new UCBtnExt();
- btnEnter.Name = "btnEnter";
- btnEnter.Size = new Size(82, 28);
- btnEnter.FillColor = Color.White;
- btnEnter.IsRadius = false;
- btnEnter.ConerRadius = 1;
- btnEnter.IsShowRect = true;
- btnEnter.RectColor = Color.FromArgb(189, 197, 203);
- btnEnter.Location = new Point(278, 332);
- btnEnter.BtnFont = new System.Drawing.Font("微软雅黑", 8);
- btnEnter.BtnText = "确定";
- btnEnter.BtnClick += (a, b) =>
- {
- SendKeys.Send("{ENTER}");
- m_frmAnchor.Hide();
- };
- m_frmAnchor.Controls.Add(btnEnter);
- btnEnter.BringToFront();
- m_frmAnchor.VisibleChanged += (a, b) =>
- {
- if (m_frmAnchor.Visible)
- {
- this.txtInput.SelectionStart = m_intSelectionStart;
- this.txtInput.SelectionLength = m_intSelectionLength;
- }
- };
- break;
- }
- if (!m_frmAnchor.Visible)
- m_frmAnchor.Show(this.FindForm());
- if (KeyboardClick != null)
- {
- KeyboardClick(sender, e);
- }
- }
- /// <summary>
- /// Handles the Disposed event of the m_frmAnchor control.
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
- void m_frmAnchor_Disposed(object sender, EventArgs e)
- {
- if (m_HandAppWin != IntPtr.Zero)
- {
- if (m_HandPWin != null && !m_HandPWin.HasExited)
- m_HandPWin.Kill();
- m_HandPWin = null;
- m_HandAppWin = IntPtr.Zero;
- }
- }
- /// <summary>
- /// The m hand application win
- /// </summary>
- IntPtr m_HandAppWin;
- /// <summary>
- /// The m hand p win
- /// </summary>
- Process m_HandPWin = null;
- /// <summary>
- /// The m hand executable name
- /// </summary>
- string m_HandExeName = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "HandInput\\handinput.exe");
- /// <summary>
- /// Handles the VisibleChanged event of the m_frmAnchor control.
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
- void m_frmAnchor_VisibleChanged(object sender, EventArgs e)
- {
- if (m_frmAnchor.Visible)
- {
- var lstP = Process.GetProcessesByName("handinput");
- if (lstP.Length > 0)
- {
- foreach (var item in lstP)
- {
- item.Kill();
- }
- }
- m_HandAppWin = IntPtr.Zero;
- if (m_HandPWin == null)
- {
- m_HandPWin = null;
- m_HandPWin = System.Diagnostics.Process.Start(this.m_HandExeName);
- m_HandPWin.WaitForInputIdle();
- }
- while (m_HandPWin.MainWindowHandle == IntPtr.Zero)
- {
- Thread.Sleep(10);
- }
- m_HandAppWin = m_HandPWin.MainWindowHandle;
- Control p = m_frmAnchor.Controls.Find("keyborder", false)[0];
- SetParent(m_HandAppWin, p.Handle);
- ControlHelper.SetForegroundWindow(this.FindForm().Handle);
- MoveWindow(m_HandAppWin, -111, -41, 626, 412, true);
- }
- else
- {
- if (m_HandAppWin != IntPtr.Zero)
- {
- if (m_HandPWin != null && !m_HandPWin.HasExited)
- m_HandPWin.Kill();
- m_HandPWin = null;
- m_HandAppWin = IntPtr.Zero;
- }
- }
- }
- /// <summary>
- /// Handles the MouseDown event of the UCTextBoxEx control.
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="MouseEventArgs" /> instance containing the event data.</param>
- private void UCTextBoxEx_MouseDown(object sender, MouseEventArgs e)
- {
- this.ActiveControl = txtInput;
- }
- /// <summary>
- /// Handles the Load event of the UCTextBoxEx control.
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
- private void UCTextBoxEx_Load(object sender, EventArgs e)
- {
- if (!Enabled)
- {
- base.FillColor = Color.FromArgb(240, 240, 240);
- txtInput.BackColor = Color.FromArgb(240, 240, 240);
- }
- else
- {
- FillColor = _FillColor;
- txtInput.BackColor = _FillColor;
- }
- }
- /// <summary>
- /// Sets the parent.
- /// </summary>
- /// <param name="hWndChild">The h WND child.</param>
- /// <param name="hWndNewParent">The h WND new parent.</param>
- /// <returns>System.Int64.</returns>
- [DllImport("user32.dll", SetLastError = true)]
- private static extern long SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
- /// <summary>
- /// Moves the window.
- /// </summary>
- /// <param name="hwnd">The HWND.</param>
- /// <param name="x">The x.</param>
- /// <param name="y">The y.</param>
- /// <param name="cx">The cx.</param>
- /// <param name="cy">The cy.</param>
- /// <param name="repaint">if set to <c>true</c> [repaint].</param>
- /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
- [DllImport("user32.dll", SetLastError = true)]
- private static extern bool MoveWindow(IntPtr hwnd, int x, int y, int cx, int cy, bool repaint);
- /// <summary>
- /// Shows the window.
- /// </summary>
- /// <param name="hwnd">The HWND.</param>
- /// <param name="nCmdShow">The n command show.</param>
- /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
- [DllImport("user32.dll", EntryPoint = "ShowWindow")]
- private static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);
- /// <summary>
- /// Sets the window position.
- /// </summary>
- /// <param name="hWnd">The h WND.</param>
- /// <param name="hWndlnsertAfter">The h wndlnsert after.</param>
- /// <param name="X">The x.</param>
- /// <param name="Y">The y.</param>
- /// <param name="cx">The cx.</param>
- /// <param name="cy">The cy.</param>
- /// <param name="Flags">The flags.</param>
- /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
- [DllImport("user32.dll")]
- private static extern bool SetWindowPos(IntPtr hWnd, int hWndlnsertAfter, int X, int Y, int cx, int cy, uint Flags);
- /// <summary>
- /// The GWL style
- /// </summary>
- private const int GWL_STYLE = -16;
- /// <summary>
- /// The ws child
- /// </summary>
- private const int WS_CHILD = 0x40000000;//设置窗口属性为child
- /// <summary>
- /// Gets the window long.
- /// </summary>
- /// <param name="hwnd">The HWND.</param>
- /// <param name="nIndex">Index of the n.</param>
- /// <returns>System.Int32.</returns>
- [DllImport("user32.dll", EntryPoint = "GetWindowLong")]
- public static extern int GetWindowLong(IntPtr hwnd, int nIndex);
- /// <summary>
- /// Sets the window long.
- /// </summary>
- /// <param name="hwnd">The HWND.</param>
- /// <param name="nIndex">Index of the n.</param>
- /// <param name="dwNewLong">The dw new long.</param>
- /// <returns>System.Int32.</returns>
- [DllImport("user32.dll", EntryPoint = "SetWindowLong")]
- public static extern int SetWindowLong(IntPtr hwnd, int nIndex, int dwNewLong);
- /// <summary>
- /// Sets the active window.
- /// </summary>
- /// <param name="handle">The handle.</param>
- /// <returns>IntPtr.</returns>
- [DllImport("user32.dll")]
- private extern static IntPtr SetActiveWindow(IntPtr handle);
- }
- }
|