How To Change Position A Windows Forms MessageBox in C#
Here's a tip from CODE PROJECT on positioning message box.
This utilize c++ dlls.
Cheers!
using System.Runtime.InteropServices; using System.Threading; [DllImport("user32.dll")] static extern IntPtr FindWindow(IntPtr classname, string title); // extern method: FindWindow [DllImport("user32.dll")] static extern void MoveWindow(IntPtr hwnd, int X, int Y, int nWidth, int nHeight, bool rePaint); // extern method: MoveWindow [DllImport("user32.dll")] static extern bool GetWindowRect(IntPtr hwnd, out Rectangle rect); // extern method: GetWindowRect void FindAndMoveMsgBox(int x, int y, bool repaint, string title) { Thread thr = new Thread(() => // create a new thread { IntPtr msgBox = IntPtr.Zero; // while there's no MessageBox, FindWindow returns IntPtr.Zero while ((msgBox = FindWindow(IntPtr.Zero, title)) == IntPtr.Zero) ; // after the while loop, msgBox is the handle of your MessageBox Rectangle r = new Rectangle(); GetWindowRect(msgBox, out r); // Gets the rectangle of the message box MoveWindow(msgBox /* handle of the message box */, x , y, r.Width - r.X /* width of originally message box */, r.Height - r.Y /* height of originally message box */, repaint /* if true, the message box repaints */); }); thr.Start(); // starts the thread }
Cheers!
Comments
Post a Comment