关于gdi的问题

hanmlxiao 2009-08-06 01:56:19
代码如下

private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.SetClip(this.ClientRectangle);
System.Diagnostics.Debug.WriteLine("ClientRectangle region painted: " + this.ClientRectangle);
System.Diagnostics.Debug.WriteLine("Clipping region painted: " + e.ClipRectangle);
Pen pen = new Pen(Color.Red);
e.Graphics.DrawLine(pen, 0, 0, 60, 120);
e.Graphics.DrawRectangle(pen, e.ClipRectangle);
pen.Dispose();
System.Diagnostics.Debug.WriteLine("Clipping region painted: " + e.ClipRectangle);

}

如果该窗口是可以滚动的,当点击滚动条时,SetClip方法不起作用,不知谁知道为什么???
...全文
81 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanmlxiao 2009-08-06
  • 打赏
  • 举报
回复
我这个例子就是普通的窗口,将autoscall 属性设置成true了,调整大小使其出现滚动条
hanmlxiao 2009-08-06
  • 打赏
  • 举报
回复
点动滚动条时,窗口的clip region是一定得,这个区域会重绘,剩下的部分不重绘但是会移动,我就是想知道即然没重回,那是怎么移动的呢???
zgke 2009-08-06
  • 打赏
  • 举报
回复
你的滚动条是 AutoScroll来的 还是自己放的控件?
hanmlxiao 2009-08-06
  • 打赏
  • 举报
回复
那窗口重绘的区域是怎么确定的呢?
zgke 2009-08-06
  • 打赏
  • 举报
回复
滚动条 和 this.ClientRectangle没关系...这个区域是不变的.

110,537

社区成员

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

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

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