绘图问题,在线等候解答 SDI结构,我想实现这样的功能:在视图区每点一下鼠标就用CDC画一个东西(比如圆或者直线).请问这个视图是用什么View?在视图响应click消息然后Update可以做到么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你好,我们认识,在一般的视图就可以Cxxview处理mousemovemousedownmouseup消息,ONdraw() 你好!很高兴再见到你!CEditView也可以?我不明白,我的意思是,实现类似于powerpoint一样的功能,每点一下鼠标就多画一点东西,所以不能响应mousemove,mousedown,mouseup消息的吧?另外,ondraw()这个消息在什么情况下获得?请具体点行么? CEditView也可以,是视图刷新的时候自动调用的ondraw(),以你的意思,你只要处理mousedown既可以了,鼠标点一下,就:cclient dc(this);dc.Ellipse(10,10,40,40)就是一个半径位15的园 简单就基于CView拦LButtonDown消息CDC * pDC=GetDC();CPen pen(PS_SOLID, 1,RGB(255,0,0)),*oldpen;CBrush brush,*oldbrush;brush.CreateStockBrush(NULL_BURHS);oldpen=pDC->selectobject(&pen);oldbrush=pDC->selectobject(&brush);pDC->ellipse(point.x-10,point.y-10,point.x+10,point.y+10);pDC->selectobject(oldpen);pDC->selectobject(oldbrush);ok!!累死我了 arvid_gs(west) 的方法不行。原因:那个圆始终画在一个地方。用我的方法可以实现,在是在刷新后,画的圆就没有了,因为OnDraw()中没有重画。你可以做两个数组(简单的方法)保存第次按下的坐标,重画时使用。 阻塞引起的发送速度问题 Windows 7 访问注册表失败 如何解决 ADO记录集的异常 在使用TreeCtrl结构时,如何修改当前选中节点的text值 在用CSplitterWnd切分视图后,如何让切分后的视图显示不同的内容?(在线等。。) 如何在标题栏末尾添加打开文档全名???? 求把win32的DLL工程改为EXE工程 如何在窗口的特定区域加入鼠标消息或键盘消息 请问如何实现ultra edit的文件修改通知功能 如何在vc中使用::AnimateWindow(HWND hWnd);我怎么试都不行 散分要理由吗? 散分要理由吗?
在一般的视图就可以
Cxxview
处理mousemove
mousedown
mouseup
消息,ONdraw()
CEditView也可以?我不明白,我的意思是,实现类似于powerpoint一样的功能,每点一下鼠标就多画一点东西,所以不能响应mousemove,mousedown,mouseup消息的吧?另外,ondraw()这个消息在什么情况下获得?请具体点行么?
以你的意思,你只要处理mousedown既可以了,鼠标点一下,就:
cclient dc(this);
dc.Ellipse(10,10,40,40)就是一个半径位15的园
就基于CView
拦LButtonDown消息
CDC * pDC=GetDC();
CPen pen(PS_SOLID, 1,RGB(255,0,0)),*oldpen;
CBrush brush,*oldbrush;
brush.CreateStockBrush(NULL_BURHS);
oldpen=pDC->selectobject(&pen);
oldbrush=pDC->selectobject(&brush);pDC->ellipse(point.x-10,point.y-10,point.x+10,point.y+10);pDC->selectobject(oldpen);
pDC->selectobject(oldbrush);
ok!!累死我了
原因:那个圆始终画在一个地方。用我的方法可以实现,在是在刷新后,画的圆就没有了,因为OnDraw()中没有重画。
你可以做两个数组(简单的方法)保存第次按下的坐标,重画时使用。