1. 程式人生 > >讓MessageBox彈出在當前窗體的中央,而不是在螢幕的中央

讓MessageBox彈出在當前窗體的中央,而不是在螢幕的中央

WinForm中預設的MessageBox預設的彈出位置在螢幕的center,而且沒有屬性可以修改它,所以在當前活動窗體不在中央時,將會出現,彈出的MessageBox的錯位,如下:

邀月工作室

而我們有時需要的是這樣:

邀月工作室

昨天看到Codeproject上有一篇文章:《Centering MessageBox, Common DialogBox or Form on applications》,

原文的實現原理是:在對話方塊被開啟前,增加了一個WH_CALLWNDPROC hook 來查詢WM_INITDIALOG message,其實是一個學習鉤子的好示例。

關鍵程式碼:

除錯時,發現不能實現想要的效果,檢查了下程式碼,增加了一行,OK!(原始碼中的列舉值少了一個關鍵值。邀月[[email protected]]注)

 

附:

程式碼下載二

程式碼下載

邀月注:本文版權由邀月和CSDN共同所有,轉載請註明出處。 助人等於自助!   [email protected]