标题:Width,Heigth能用负数么?
只看楼主
大雨过后
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-8-22
 问题点数:0 回复次数:1 
Width,Heigth能用负数么?

在看一个自画菜单的设计的时候有一个问题很不理解!
这个点击一个命令"椭圆形"时(我已经在其命令的属性窗口中选择了DrawItem事件)
此时我在这个事件中添加这个代码:
private void menuItem2_DrawItem(object sender,
System.Windows.Forms.DrawItemEventArgs e)
{
Graphics g=e.Graphics;
//判断菜单项的状态
if ((e.State & DrawItemState.Selected)==DrawItemState.Selected)
{
//绘制背景填充矩形
g.FillRectangle(new SolidBrush(Color.Red),e.Bounds.Left,
e.Bounds.Top,e.Bounds.Width,e.Bounds.Height);
//绘制前景椭圆
g.DrawEllipse(new Pen(Color.Yellow,2.0f),e.Bounds.Left+5,e.Bounds.Top+3,
e.Bounds.Width-10,e.Bounds.Height-6);
}

else
{
//变换颜色绘制前景和背景
g.FillRectangle(new SolidBrush(Color.Yellow),
e.Bounds.Left,e.Bounds.Top,e.Bounds.Width,e.Bounds.Height);
g.DrawEllipse(new Pen( Color.Red,2.0f),e.Bounds.Left+5,e.Bounds.Top+3,
e.Bounds.Width-10,e.Bounds.Height-6);

}
}
我的问题是;1为什么在调用Drawlist()的时候这个Width和Height的参数设的是负数啊?
2.这个代码的if ((e.State & DrawItemState.Selected)==DrawItemState.Selected)这个条件是什么意思啊?
万分感激啊!

搜索更多相关主题的帖子: Heigth Width 负数 
2006-08-22 01:43
mylover624
Rank: 1
来 自:乖乖的心中
等 级:新手上路
帖 子:868
专家分:0
注 册:2006-7-6
得分:0 
这不是负数:
e.Bounds.Width-10 这个是将原来的宽度减少10;
e.Bounds.Height-6 这个是将原来的高度减少6;
它们和"e.Bounds.Left+5,e.Bounds.Top+3"是差不多的道理.

if ((e.State & DrawItemState.Selected)==DrawItemState.Selected)
这句是当 DrawItemState 的某一项被选中时.你将要进行什么操作…………

[此贴子已经被作者于2006-8-22 11:19:14编辑过]


一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@.cn
2006-08-22 11:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-85381-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.124694 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved