出于某种原因,我需要检测用户何时真正点击了X按钮。到目前为止,我得到的是:
protected override void WndProc(ref Message m)
{
if (m.Msg == (int)0xa1) //WM_NCLBUTTONDOWN
{
Point p = new Point((int)m.LParam);
p = this.PointToClient(p);
if (p.X > 680)
{
//do what I need to do...
}
}
base.WndProc(ref m);
}
我的问题是,如何判断这些坐标是否在X按钮上。现在,我硬编码680,因为这是在当前窗口大小下工作的(它不太大),但问题是我使用的是Windows7,它有比XP更大的X按钮,所以显然硬编码不是一个可行的选择。此外,我甚至没有为Y坐标编码,所以如果有人点击窗口的右边缘,也会触发该代码。所以。。。有人有什么想法吗?