标题栏添加自定义按钮的问题!

gezhaowan 2009-09-04 09:51:55
添加按钮已经实现了。
实现方法是这样的:把form的controlbox设为false,取得dc,然后自己画个图片上去,响应点击等事件。
但是有些问题:
①:在按钮区域按住鼠标可以拖动窗口。不能像自带的最大化,最小化和关闭按钮那样不能拖动?
②:和①类似按钮区域也可以双击,并改变form状态。
如何解决或者避免上面两个问题?
...全文
148 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
gezhaowan 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zgke 的回复:]
如果你是自己绘制上午的...可以通过判断消息来解决..获取到消息先判断是否在你指定的位置..
如果是 取消消息

这个可能对你有帮助
http://blog.csdn.net/zgke/archive/2008/12/31/3670069.aspx
[/Quote]
我获取WM_NCHITTEST消息判断的。但是不知道该怎么处理消息才能达到我说的效果。
现在时这么写的,这样上面的俩个问题解决了,但是又有新的问题了 ?就是移动到按钮上时,由于返回了m.Result = (IntPtr)NCHitTestResult.HTCLOSE,显示的tooltip是“关闭”而不是我自定义按钮的信息
switch(m.Msg)
{
case 0x84://WM_NCHITTEST
{
Point mousePoint = new Point((int)m.LParam);
mousePoint.Offset(-mform.Left, -mform.Top);
if(m_rect.Contains(mousePoint))
{
m.Result = (IntPtr)NCHitTestResult.HTCLOSE;
}
break;
}
zgke 2009-09-04
  • 打赏
  • 举报
回复
如果你是自己绘制上午的...可以通过判断消息来解决..获取到消息先判断是否在你指定的位置..
如果是 取消消息

这个可能对你有帮助
http://blog.csdn.net/zgke/archive/2008/12/31/3670069.aspx
gezhaowan 2009-09-04
  • 打赏
  • 举报
回复
终于搞定了 虽然走了不少弯路 但也学到不少
感谢zgke

(Cloud) 的热心帮忙
gezhaowan 2009-09-04
  • 打赏
  • 举报
回复
又要自己顶贴啊

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧