WinForm中默认的MessageBox默认的弹出位置在屏幕的center,而且没有属性可以修改它,所以在当前活动窗体不在中央时,将会出现,弹出的MessageBox的错位,如下:
而我们有时需要的是这样:
昨天看到Codeproject上有一篇文章:《Centering MessageBox, Common DialogBox or Form on applications》,
http://www.codeproject.com/KB/dialog/CenterDialog.aspx
原文的实现原理是:在对话框被打开前,增加了一个
WH_CALLWNDPROC
hook
来查找WM_INITDIALOG
message,其实是一个学习钩子的好示例。
关键代码:
调试时,发现不能实现想要的效果,检查了下代码,增加了一行,OK!(原代码中的枚举值少了一个关键值。邀月[3w@live.cn]注)
附:
邀月注:本文版权由邀月和CSDN共同所有,转载请注明出处。
助人等于自助! 3w@live.cn
助人等于自助! 3w@live.cn