【发布时间】:2017-12-16 06:53:41
【问题描述】:
这是 StackOverFlow 中另一篇文章的代码,它将改变窗口标题中的光标:
protected override void WndProc(ref Message m) {
if (m.Msg == 0x20) { // Trap WM_SETCUROR
if ((m.LParam.ToInt32() & 0xffff) == 2) { // Trap HTCAPTION
Cursor.Current = Cursors.Hand;
m.Result = (IntPtr)1; // Processed
return;
}
}
base.WndProc(ref m);
}
来源:https://stackoverflow.com/a/6484627/4871566
但我还想解决三个额外的问题:
1- 移动窗口时(按住鼠标左键),光标将再次变为其窗口默认值。移动表单窗口时有什么方法可以将光标更改为我选择的光标?
2- 当我将子表单加载为ShowDialog() 时,主表单将被禁用,用户无法与之交互。我可以更改子表单区域中的光标,但是当光标在子表单区域之外时(窗口),它将是系统窗口的默认值。有什么办法可以在外面改变光标吗?
3- 有没有办法改变消息框标题栏的光标?
【问题讨论】: