编一个循环程序,用Line控件对象在屏幕上随机产生20条长度.颜色.宽的不同的直线。

可以用VB或者C语言,最好是C语言,谢了,急用!!!... 可以用VB或者C语言,最好是C语言,谢了,急用!!! 展开
 我来答
KEBI12431111
2011-07-04 · 超过27用户采纳过TA的回答
知道答主
回答量:113
采纳率:0%
帮助的人:0
展开全部
1) 首先建立单文档应用程序Elastic;
在视窗类CElasticView中添加成员变量:
private:
CPoint start,end; //纪录直线的起点和终点
int flag; //纪录鼠标左键按下的次数(用来判断是否为直线的起点)

在构造函数中设置变量初值:
CElasticView::CElasticView()
{
// TODO: add construction code here
flag=0;
}

2) 击鼠标左键输入线段起点,或输入终点并画线:
void CElasticView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CDC* dc=GetDC(); //取得当前绘图设备的指针
CPen newpen(PS_SOLID,0,RGB(255,0,0)); //创建新的画笔
CPen* oldpen;
if(flag==0) //第一次按下鼠标(直线起点)
{
flag=1;
start=end=point;
}else{ //第二次按下鼠标(直线的终点)
oldpen=dc->SelectObject(&newpen); //将新画笔选进设备中
dc->SetROP2(R2_XORPEN); //设置画线模式为异或
dc->MoveTo(start);
dc->LineTo(end); //擦去图线,恢复背景图形
end=point;
dc->SetROP2(R2_COPYPEN); //设置画线模式为复制画笔
dc->MoveTo(start);
dc->LineTo(end); //画出图线
dc->SelectObject(oldpen); //恢复旧画笔
flag=0; //设置直线起点输入状态
}
ReleaseDC(dc); //释放绘图设备
CView::OnLButtonDown(nFlags, point);
}

3) 鼠标移动,绘制橡皮筋:
void CElasticView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CDC* dc=GetDC();
CPen newpen(PS_SOLID,0,RGB(255,0,0));
CPen* oldpen=dc->SelectObject(&newpen);
dc->SetROP2(R2_XORPEN); //设置画线模式为异或
if(flag==1) //已输入直线起点,绘制橡皮筋
{
dc->MoveTo(start);
dc->LineTo(end);
end=point;
dc->MoveTo(start);
dc->LineTo(end);
}
dc->SetROP2(R2_COPYPEN); //设置画线模式为复制画笔
dc->SelectObject(oldpen);
ReleaseDC(dc);
CView::OnMouseMove(nFlags, point);
}

4) 击鼠标右键,取消橡皮筋:
void CElasticView::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CDC* dc=GetDC();
CPen newpen(PS_SOLID,0,RGB(255,0,0));
CPen* oldpen=dc->SelectObject(&newpen);
if(flag==1) //已输入直线起点,取消橡皮筋
{
dc->SetROP2(R2_XORPEN); //设置画线模式为异或
dc->MoveTo(start);
dc->LineTo(end);
dc->SetROP2(R2_COPYPEN);
flag=0;
}
dc->SelectObject(oldpen);
ReleaseDC(dc);
CView::OnRButtonDown(nFlags, point);
}
yunlkong
2011-07-11 · TA获得超过5711个赞
知道大有可为答主
回答量:9695
采纳率:0%
帮助的人:1.9亿
展开全部
就是二分法查找法:
k跟数组的中间的元素temp比较,确定在哪部分,若k>temp1,则再跟后部分数组的中间元素temp2比较.否则跟前部分数组的中间元素temp2。循环下去。直到中间元素等于k;
就是循环确定区间再比较再确定区间. 当然算法再优化一下
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式