您的位置:首页 > 其它

winform 关于Messagebox自动定时关闭和自定义提示框总按钮上文本的问题的整理

2013-04-09 11:19 369 查看
如果要改变Messagebox上按钮的文本和自动关闭Messagebox提示框,一种方法是自定义一个winform窗口模仿替代Messagebox,变通的实现效果,另一种方法是通过调用系统的API来实现,因为C#没有对Messagebox提供相关的关闭方法。

第一种方法(自定义winform窗口实现):

[csharp] view
plaincopy

[DllImport("user32.dll", CharSet = CharSet.Auto)]

private extern static bool MessageBeep(uint type);

[DllImport("Shell32.dll")]

public extern static int ExtractIconEx(string libName, int iconIndex, IntPtr[] largeIcon, IntPtr[] smallIcon, int nIcons);

private IntPtr[] largeIcon;

private IntPtr[] smallIcon;

private MyMsgBox newMessageBox;

private Label frmTitle;

private Label frmMessage;

private PictureBox pIcon;

private FlowLayoutPanel flpButtons;

private Icon frmIcon;

private Button btnOK;

private Button btnAbort;

private Button btnRetry;

private Button btnIgnore;

private Button btnCancel;

private Button btnYes;

private Button btnNo;

private DialogResult CYReturnButton;

/// <summary>

/// 对话框图标

/// </summary>

public enum MyIcon

{

Error,

Explorer,

Find,

Information,

Mail,

Media,

Print,

Question,

RecycleBinEmpty,

RecycleBinFull,

Stop,

User,

Warning

}

/// <summary>

/// 对话框上的按钮

/// </summary>

public enum MyButtons

{

AbortRetryIgnore,

OK,

OKCancel,

RetryCancel,

YesNo,

YesNoCancel

}

/// <summary>

/// 绘制对话框

/// </summary>

/// <param name="title">对话框标题</param>

private void BuildMessageBox(string title)

{

newMessageBox = new MyMsgBox();

newMessageBox.Text = title;

newMessageBox.Size = new System.Drawing.Size(400, 200);

newMessageBox.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

newMessageBox.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;

newMessageBox.Paint += new PaintEventHandler(newMessageBox_Paint);

newMessageBox.BackColor = System.Drawing.Color.White;

TableLayoutPanel tlp = new TableLayoutPanel();

tlp.RowCount = 3;

tlp.ColumnCount = 0;

tlp.Dock = System.Windows.Forms.DockStyle.Fill;

tlp.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 22));

tlp.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));

tlp.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50));

tlp.BackColor = System.Drawing.Color.Transparent;

tlp.Padding = new Padding(2, 5, 2, 2);

frmTitle = new Label();

frmTitle.Dock = System.Windows.Forms.DockStyle.Fill;

frmTitle.BackColor = System.Drawing.Color.Transparent;

frmTitle.ForeColor = System.Drawing.Color.White;

frmTitle.Font = new Font("Tahoma", 9, FontStyle.Bold);

frmMessage = new Label();

frmMessage.Dock = System.Windows.Forms.DockStyle.Fill;

frmMessage.BackColor = System.Drawing.Color.White;

frmMessage.Font = new Font("Tahoma", 9, FontStyle.Regular);

frmMessage.Text = "hiii";

largeIcon = new IntPtr[250];

smallIcon = new IntPtr[250];

pIcon = new PictureBox();

ExtractIconEx("shell32.dll", 0, largeIcon, smallIcon, 250);

flpButtons = new FlowLayoutPanel();

flpButtons.FlowDirection = System.Windows.Forms.FlowDirection.RightToLeft;

flpButtons.Padding = new Padding(0, 5, 5, 0);

flpButtons.Dock = System.Windows.Forms.DockStyle.Fill;

flpButtons.BackColor = System.Drawing.Color.FromArgb(240, 240, 240);

TableLayoutPanel tlpMessagePanel = new TableLayoutPanel();

tlpMessagePanel.BackColor = System.Drawing.Color.White;

tlpMessagePanel.Dock = System.Windows.Forms.DockStyle.Fill;

tlpMessagePanel.ColumnCount = 2;

tlpMessagePanel.RowCount = 0;

tlpMessagePanel.Padding = new Padding(4, 5, 4, 4);

tlpMessagePanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 50));

tlpMessagePanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));

tlpMessagePanel.Controls.Add(pIcon);

tlpMessagePanel.Controls.Add(frmMessage);

tlp.Controls.Add(frmTitle);

tlp.Controls.Add(tlpMessagePanel);

tlp.Controls.Add(flpButtons);

newMessageBox.Controls.Add(tlp);

}

/// <summary>

/// 显现对话框

/// </summary>

/// <param name="timeout">自动关闭时间,以毫秒为单位,如果设置为0则不自动关闭</param>

/// <param name="Message">对话框中显示的提示内容</param>

/// <returns></returns>

public DialogResult ShowMsg(int timeout, string Message)

{

if (timeout > 0)

{

StartTimer(timeout);

}

BuildMessageBox("");

frmMessage.Text = Message;

ShowOKButton();

newMessageBox.ShowDialog();

return CYReturnButton;

}

/// <summary>

/// 显示对话框

/// </summary>

/// <param name="timeout">自动关闭时间,以毫秒为单位,如果设置为0则不自动关闭</param>

/// <param name="Message">对话框中显示的提示内容</param>

/// <param name="Title">对话框的标题</param>

/// <returns></returns>

public DialogResult ShowMsg(int timeout, string Message, string Title)

{

if (timeout > 0)

{

StartTimer(timeout);

}

BuildMessageBox(Title);

frmTitle.Text = Title;

frmMessage.Text = Message;

ShowOKButton();

newMessageBox.ShowDialog();

return CYReturnButton;

}

/// <summary>

/// 显示对话框

/// </summary>

/// <param name="timeout">自动关闭时间,以毫秒为单位,如果设置为0则不自动关闭</param>

/// <param name="Message">对话框中显示的提示内容</param>

/// <param name="Title">对话框的标题</param>

/// <param name="MButtons">对话框中的按钮</param>

/// <returns></returns>

public DialogResult ShowMsg(int timeout, string Message, string Title, MyButtons MButtons)

{

if (timeout > 0)

{

StartTimer(timeout);

}

BuildMessageBox(Title);

[csharp] view
plaincopy

frmTitle.Text = Title;

[csharp] view
plaincopy

frmMessage.Text = Message;

[csharp] view
plaincopy

ButtonStatements(MButtons);

[csharp] view
plaincopy

newMessageBox.ShowDialog();

[csharp] view
plaincopy

return CYReturnButton;

[csharp] view
plaincopy

}

/// <summary>

/// 显示对话框

/// </summary>

/// <param name="timeout">自动关闭时间,以毫秒为单位,如果设置为0则不自动关闭</param>

/// <param name="Message">对话框中显示的提示内容</param>

/// <param name="Title">对话框的标题</param>

/// <param name="MButtons">对话框中的按钮</param>

/// <param name="MIcon">对话框中显示的图标</param>

/// <returns></returns>

public DialogResult ShowMsg(int timeout, string Message, string Title, MyButtons MButtons, MyIcon MIcon)

{

if (timeout > 0)

{

StartTimer(timeout);

}

BuildMessageBox(Title);

frmTitle.Text = Title;

frmMessage.Text = Message;

ButtonStatements(MButtons);

IconStatements(MIcon);

Image imageIcon = new Bitmap(frmIcon.ToBitmap(), 38, 38);

pIcon.Image = imageIcon;

newMessageBox.ShowDialog();

return CYReturnButton;

}

/// <summary>

/// OK按钮单击事件

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

void btnOK_Click(object sender, EventArgs e)

{

CYReturnButton = DialogResult.OK;

newMessageBox.Dispose();

}

/// <summary>

/// Abort按钮单击事件

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

void btnAbort_Click(object sender, EventArgs e)

{

CYReturnButton = DialogResult.Abort;

newMessageBox.Dispose();

}

/// <summary>

/// Retry按钮单击事件

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

void btnRetry_Click(object sender, EventArgs e)

{

CYReturnButton = DialogResult.Retry;

newMessageBox.Dispose();

}

/// <summary>

/// Ignore按钮单击事件

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

void btnIgnore_Click(object sender, EventArgs e)

{

CYReturnButton = DialogResult.Ignore;

newMessageBox.Dispose();

}

/// <summary>

/// Cancel按钮单击事件

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

void btnCancel_Click(object sender, EventArgs e)

{

CYReturnButton = DialogResult.Cancel;

newMessageBox.Dispose();

}

/// <summary>

/// YSE按钮单击事件

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

void btnYes_Click(object sender, EventArgs e)

{

CYReturnButton = DialogResult.Yes;

newMessageBox.Dispose();

}

/// <summary>

/// NO按钮单击事件

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

void btnNo_Click(object sender, EventArgs e)

{

CYReturnButton = DialogResult.No;

newMessageBox.Dispose();

}

/// <summary>

/// OK按钮样式

/// </summary>

private void ShowOKButton()

{

btnOK = new Button();

btnOK.Text = "确定";

btnOK.Size = new System.Drawing.Size(80, 25);

btnOK.BackColor = System.Drawing.Color.FromArgb(255, 255, 255);

btnOK.Font = new Font("Tahoma", 8, FontStyle.Regular);

btnOK.Click += new EventHandler(btnOK_Click);

flpButtons.Controls.Add(btnOK);

}

/// <summary>

/// Abort按钮样式

/// </summary>

private void ShowAbortButton()

{

btnAbort = new Button();

btnAbort.Text = "中止";

btnAbort.Size = new System.Drawing.Size(80, 25);

btnAbort.BackColor = System.Drawing.Color.FromArgb(255, 255, 255);

btnAbort.Font = new Font("Tahoma", 8, FontStyle.Regular);

btnAbort.Click += new EventHandler(btnAbort_Click);

flpButtons.Controls.Add(btnAbort);

}

/// <summary>

/// Retry按钮样式

/// </summary>

private void ShowRetryButton()

{

btnRetry = new Button();

btnRetry.Text = "重试";

btnRetry.Size = new System.Drawing.Size(80, 25);

btnRetry.BackColor = System.Drawing.Color.FromArgb(255, 255, 255);

btnRetry.Font = new Font("Tahoma", 8, FontStyle.Regular);

btnRetry.Click += new EventHandler(btnRetry_Click);

flpButtons.Controls.Add(btnRetry);

}

/// <summary>

/// Ignore按钮样式

/// </summary>

private void ShowIgnoreButton()

{

btnIgnore = new Button();

btnIgnore.Text = "忽略";

btnIgnore.Size = new System.Drawing.Size(80, 25);

btnIgnore.BackColor = System.Drawing.Color.FromArgb(255, 255, 255);

btnIgnore.Font = new Font("Tahoma", 8, FontStyle.Regular);

btnIgnore.Click += new EventHandler(btnIgnore_Click);

flpButtons.Controls.Add(btnIgnore);

}

/// <summary>

/// Cancel按钮样式

/// </summary>

private void ShowCancelButton()

{

btnCancel = new Button();

btnCancel.Text = "取消";

btnCancel.Size = new System.Drawing.Size(80, 25);

btnCancel.BackColor = System.Drawing.Color.FromArgb(255, 255, 255);

btnCancel.Font = new Font("Tahoma", 8, FontStyle.Regular);

btnCancel.Click += new EventHandler(btnCancel_Click);

flpButtons.Controls.Add(btnCancel);

}

/// <summary>

/// Yes按钮样式

/// </summary>

private void ShowYesButton()

{

btnYes = new Button();

btnYes.Text = "是";

btnYes.Size = new System.Drawing.Size(80, 25);

btnYes.BackColor = System.Drawing.Color.FromArgb(255, 255, 255);

btnYes.Font = new Font("Tahoma", 8, FontStyle.Regular);

btnYes.Click += new EventHandler(btnYes_Click);

flpButtons.Controls.Add(btnYes);

}

/// <summary>

/// No按钮样式

/// </summary>

private void ShowNoButton()

{

btnNo = new Button();

btnNo.Text = "否";

btnNo.Size = new System.Drawing.Size(80, 25);

btnNo.BackColor = System.Drawing.Color.FromArgb(255, 255, 255);

btnNo.Font = new Font("Tahoma", 8, FontStyle.Regular);

btnNo.Click += new EventHandler(btnNo_Click);

flpButtons.Controls.Add(btnNo);

}

/// <summary>

/// 对话框中添加按钮

/// </summary>

/// <param name="MButtons">要添加的按钮(MyButtons枚举)</param>

private void ButtonStatements(MyButtons MButtons)

{

if (MButtons == MyButtons.AbortRetryIgnore)

{

ShowIgnoreButton();

ShowRetryButton();

ShowAbortButton();

}

if (MButtons == MyButtons.OK)

{

ShowOKButton();

}

if (MButtons == MyButtons.OKCancel)

{

ShowCancelButton();

ShowOKButton();

}

if (MButtons == MyButtons.RetryCancel)

{

ShowCancelButton();

ShowRetryButton();

}

if (MButtons == MyButtons.YesNo)

{

ShowNoButton();

ShowYesButton();

}

if (MButtons == MyButtons.YesNoCancel)

{

ShowCancelButton();

ShowNoButton();

ShowYesButton();

}

}

/// <summary>

/// 对话框中添加图标

/// </summary>

/// <param name="MIcon">要添加的图标(MyIcon枚举)</param>

private void IconStatements(MyIcon MIcon)

{

if (MIcon == MyIcon.Error)

{

MessageBeep(30);

frmIcon = Icon.FromHandle(largeIcon[109]);

}

if (MIcon == MyIcon.Explorer)

{

MessageBeep(0);

frmIcon = Icon.FromHandle(largeIcon[220]);

}

if (MIcon == MyIcon.Find)

{

MessageBeep(0);

frmIcon = Icon.FromHandle(largeIcon[22]);

}

if (MIcon == MyIcon.Information)

{

MessageBeep(0);

frmIcon = Icon.FromHandle(largeIcon[221]);

}

if (MIcon == MyIcon.Mail)

{

MessageBeep(0);

frmIcon = Icon.FromHandle(largeIcon[156]);

}

if (MIcon == MyIcon.Media)

{

MessageBeep(0);

frmIcon = Icon.FromHandle(largeIcon[116]);

}

if (MIcon == MyIcon.Print)

{

MessageBeep(0);

frmIcon = Icon.FromHandle(largeIcon[136]);

}

if (MIcon == MyIcon.Question)

{

MessageBeep(0);

frmIcon = Icon.FromHandle(largeIcon[23]);

}

if (MIcon == MyIcon.RecycleBinEmpty)

{

MessageBeep(0);

frmIcon = Icon.FromHandle(largeIcon[31]);

}

if (MIcon == MyIcon.RecycleBinFull)

{

MessageBeep(0);

frmIcon = Icon.FromHandle(largeIcon[32]);

}

if (MIcon == MyIcon.Stop)

{

MessageBeep(0);

frmIcon = Icon.FromHandle(largeIcon[27]);

}

if (MIcon == MyIcon.User)

{

MessageBeep(0);

frmIcon = Icon.FromHandle(largeIcon[170]);

}

if (MIcon == MyIcon.Warning)

{

MessageBeep(30);

frmIcon = Icon.FromHandle(largeIcon[217]);

}

}

void newMessageBox_Paint(object sender, PaintEventArgs e)

{

Graphics g = e.Graphics;

Rectangle frmTitleL = new Rectangle(0, 0, (newMessageBox.Width / 2), 22);

Rectangle frmTitleR = new Rectangle((newMessageBox.Width / 2), 0, (newMessageBox.Width / 2), 22);

Rectangle frmMessageBox = new Rectangle(0, 0, (newMessageBox.Width - 1), (newMessageBox.Height - 1));

LinearGradientBrush frmLGBL = new LinearGradientBrush(frmTitleL, Color.FromArgb(87, 148, 160), Color.FromArgb(209, 230, 243), LinearGradientMode.Horizontal);

LinearGradientBrush frmLGBR = new LinearGradientBrush(frmTitleR, Color.FromArgb(209, 230, 243), Color.FromArgb(87, 148, 160), LinearGradientMode.Horizontal);

Pen frmPen = new Pen(Color.FromArgb(63, 119, 143), 1);

g.FillRectangle(frmLGBL, frmTitleL);

g.FillRectangle(frmLGBR, frmTitleR);

g.DrawRectangle(frmPen, frmMessageBox);

}

private void StartTimer(int interval)

{

Timer timer = new Timer();

timer.Interval = interval;

timer.Tick += new EventHandler(Timer_Tick);

timer.Enabled = true;

}

private void Timer_Tick(object sender, EventArgs e)

{

newMessageBox.Close();

//停止计时器

((Timer)sender).Enabled = false;

}

第二种方法(调用API实现):

1、实现定时关闭Messagebox,通过Messagebox对话框的标题查找相应的句柄来进行关闭操作

[csharp] view
plaincopy

public class MessageBoxTimeOut

{

private string _caption;

private string username;

private string pwd;

public DialogResult Show(int timeout, string text, string caption, MessageBoxButtons buttons)

{

this._caption = caption;

StartTimer(timeout);

DialogResult dr = MessageBox.Show(text, caption, buttons, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);

return dr;

}

private void StartTimer(int interval)

{

Timer timer = new Timer();

timer.Interval = interval;

timer.Tick += new EventHandler(Timer_Tick);

timer.Enabled = true;

}

private void Timer_Tick(object sender, EventArgs e)

{

KillMessageBox();

//停止计时器

((Timer)sender).Enabled = false;

}

[DllImport("User32.dll", EntryPoint = "FindWindow", CharSet = CharSet.Auto)]

private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);

[DllImport("User32.dll", CharSet = CharSet.Auto)]

public static extern int PostMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);

public const int WM_CLOSE = 0x10;

public void KillMessageBox()

{

//查找MessageBox的弹出窗口,注意对应标题

IntPtr ptr = FindWindow(null, this._caption);

if (ptr != IntPtr.Zero)

{

//查找到窗口则关闭

PostMessage(ptr, WM_CLOSE, IntPtr.Zero, IntPtr.Zero);

}

}

}

2、关闭Messagebox对话框中按钮的文本文字

[csharp] view
plaincopy

public class MessageBoxManager

{

private delegate IntPtr HookProc(int nCode, IntPtr wParam, IntPtr lParam);

private delegate bool EnumChildProc(IntPtr hWnd, IntPtr lParam);

private const int WH_CALLWNDPROCRET = 12;

private const int WM_DESTROY = 0x0002;

private const int WM_INITDIALOG = 0x0110;

private const int WM_TIMER = 0x0113;

private const int WM_USER = 0x400;

private const int DM_GETDEFID = WM_USER + 0;

private const int MBOK = 1;

private const int MBCancel = 2;

private const int MBAbort = 3;

private const int MBRetry = 4;

private const int MBIgnore = 5;

private const int MBYes = 6;

private const int MBNo = 7;

[DllImport("user32.dll")]

private static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);

[DllImport("user32.dll")]

private static extern IntPtr SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hInstance, int threadId);

[DllImport("user32.dll")]

private static extern int UnhookWindowsHookEx(IntPtr idHook);

[DllImport("user32.dll")]

private static extern IntPtr CallNextHookEx(IntPtr idHook, int nCode, IntPtr wParam, IntPtr lParam);

[DllImport("user32.dll", EntryPoint = "GetWindowTextLengthW", CharSet = CharSet.Unicode)]

private static extern int GetWindowTextLength(IntPtr hWnd);

[DllImport("user32.dll", EntryPoint = "GetWindowTextW", CharSet = CharSet.Unicode)]

private static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int maxLength);

[DllImport("user32.dll")]

private static extern int EndDialog(IntPtr hDlg, IntPtr nResult);

[DllImport("user32.dll")]

private static extern bool EnumChildWindows(IntPtr hWndParent, EnumChildProc lpEnumFunc, IntPtr lParam);

[DllImport("user32.dll", EntryPoint = "GetClassNameW", CharSet = CharSet.Unicode)]

private static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);

[DllImport("user32.dll")]

private static extern int GetDlgCtrlID(IntPtr hwndCtl);

[DllImport("user32.dll")]

private static extern IntPtr GetDlgItem(IntPtr hDlg, int nIDDlgItem);

[DllImport("user32.dll", EntryPoint = "SetWindowTextW", CharSet = CharSet.Unicode)]

private static extern bool SetWindowText(IntPtr hWnd, string lpString);

[StructLayout(LayoutKind.Sequential)]

public struct CWPRETSTRUCT

{

public IntPtr lResult;

public IntPtr lParam;

public IntPtr wParam;

public uint message;

public IntPtr hwnd;

};

private static HookProc hookProc;

private static EnumChildProc enumProc;

[ThreadStatic]

private static IntPtr hHook;

[ThreadStatic]

private static int nButton;

/// <summary>

/// OK text

/// </summary>

public static string OK = "&OK";

/// <summary>

/// Cancel text

/// </summary>

public static string Cancel = "&Cancel";

/// <summary>

/// Abort text

/// </summary>

public static string Abort = "&Abort";

/// <summary>

/// Retry text

/// </summary>

public static string Retry = "&Retry";

/// <summary>

/// Ignore text

/// </summary>

public static string Ignore = "&Ignore";

/// <summary>

/// Yes text

/// </summary>

public static string Yes = "&Yes";

/// <summary>

/// No text

/// </summary>

public static string No = "&No";

static MessageBoxManager()

{

hookProc = new HookProc(MessageBoxHookProc);

enumProc = new EnumChildProc(MessageBoxEnumProc);

hHook = IntPtr.Zero;

}

public static void Register()

{

if (hHook != IntPtr.Zero)

throw new NotSupportedException("One hook per thread allowed.");

hHook = SetWindowsHookEx(WH_CALLWNDPROCRET, hookProc, IntPtr.Zero, AppDomain.GetCurrentThreadId());

}

public static void Unregister()

{

if (hHook != IntPtr.Zero)

{

UnhookWindowsHookEx(hHook);

hHook = IntPtr.Zero;

}

}

private static IntPtr MessageBoxHookProc(int nCode, IntPtr wParam, IntPtr lParam)

{

if (nCode < 0)

return CallNextHookEx(hHook, nCode, wParam, lParam);

CWPRETSTRUCT msg = (CWPRETSTRUCT)Marshal.PtrToStructure(lParam, typeof(CWPRETSTRUCT));

IntPtr hook = hHook;

if (msg.message == WM_INITDIALOG)

{

int nLength = GetWindowTextLength(msg.hwnd);

StringBuilder className = new StringBuilder(10);

GetClassName(msg.hwnd, className, className.Capacity);

if (className.ToString() == "#32770")

{

nButton = 0;

EnumChildWindows(msg.hwnd, enumProc, IntPtr.Zero);

if (nButton == 1)

{

IntPtr hButton = GetDlgItem(msg.hwnd, MBCancel);

if (hButton != IntPtr.Zero)

SetWindowText(hButton, OK);

}

}

}

return CallNextHookEx(hook, nCode, wParam, lParam);

}

private static bool MessageBoxEnumProc(IntPtr hWnd, IntPtr lParam)

{

StringBuilder className = new StringBuilder(10);

GetClassName(hWnd, className, className.Capacity);

if (className.ToString() == "Button")

{

int ctlId = GetDlgCtrlID(hWnd);

switch (ctlId)

{

case MBOK:

SetWindowText(hWnd, OK);

break;

case MBCancel:

SetWindowText(hWnd, Cancel);

break;

case MBAbort:

SetWindowText(hWnd, Abort);

break;

case MBRetry:

SetWindowText(hWnd, Retry);

break;

case MBIgnore:

SetWindowText(hWnd, Ignore);

break;

case MBYes:

SetWindowText(hWnd, Yes);

break;

case MBNo:

SetWindowText(hWnd, No);

break;

}

nButton++;

}

return true;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: