如何移动图形,求助 我用MFC做了一个简单的CAD,可以画图,但是如何可以拖动画好的图形,那位大大何以给出相关的例子或代码,十万火急,十分感谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ScrollDC(),ScrollWindow(),ScrollWindowEx() 这要看你这么组织图象元素的了,你要移动图象的某部分,必须让各个元素都是独立的可以移动的。我看到最简单的方法就是所有的元素以链表的形式存储在内存中。然后在OnDraw中调用相应的绘图函数进行显示,这样如果想移动图象(可以是一个元素,也可以是多个元素的组合体)只需简单的修改坐标,重新刷新后,图象就到了新的位置了。 想使用CSrollView(而想所有工作都由自己完成!):1.在OnVScroll中用信息管理函数(UNIT,UINT,CScrollBar*)充当例如失效等等.(用开关语句处理7条信息)也可以用SetScrollPos()、ScrollWindow()(见在线帮助)2.在OnSize中,按上SCROLLINFO结构(见Winuser.h)并且使用SetScrollInfo()3.在OnPaint中设置窗口起始位置以便在出现任何图画前显示滚动条. 或者你可以根据需要定义一个CSrollView类: (1).定义一个CScrollView类,在OnCreate对话框中显示它(调用create函数)(2).在OnSize中定义一个CScrollView类,可调用SetScrollSizes() (3).在CSrollView数据的初始化中,可用SetScrollSizes()函数来设置逻辑值如果需要,你可用开关语句来编程去调用OnVScroll等(如果在这里需要使用键盘!) 拖动图形需要知道:microsoft 的Tracker,由于你的问题不是特别清楚,同时也因为涉及面大,不好回答。建议看写书或别人的软件。 这个蛮简单,我就讲讲怎样拖动一个矩形;(1)在OnLButtonDown()中画一个矩形,并记录这个矩形的左上顶点,和右下顶点。(2)在OnMouseMove()中,根据鼠标所指的点(即point)画矩形,每一次在同一个地方画两次矩形(即连续两次调用画矩形函数),这样就可插除这个矩形。(3)在OnLButtonDown(),先保存鼠标左健放开时的这个点,再按照(1)中所保存的点,画一次矩形,就可把刚开始画的矩形擦除。再用最後保存的点画一次矩形,OK,成功了。记住,再一个地方,用同一种颜色连续画两次,即可擦除第一次所画的图形。 关于LoadBitmap()函数的用法? 如何获得子对话框中CCOMBOX控件的字符串 Oracle 不支持 ADOX 的某些特性? 请教各位有关CRecordSet的问题 如何把一个字符串转换成数字,然后再还原成字符串? List Control控件整行选中问题。 急!急!急!请叫各位在VC中如何使用Ms Chart(OLEDB)编程的问题? 谁有写好的图象格式压缩算法 怎样理解这个基础的问题? MFC程序在进入InitIstance之前报错了 散分100:哪位有这个头文件? 如何实现CFormView的最大化
1.在OnVScroll中用信息管理函数(UNIT,UINT,CScrollBar*)充当例如失效等等.(用开关语句处理7条信息)也可以用SetScrollPos()、ScrollWindow()(见在线帮助)
2.在OnSize中,按上SCROLLINFO结构(见Winuser.h)并且使用SetScrollInfo()
3.在OnPaint中设置窗口起始位置以便在出现任何图画前显示滚动条. 或者你可以根据需要定义一个CSrollView类:
(1).定义一个CScrollView类,在OnCreate对话框中显示它(调用create函数)
(2).在OnSize中定义一个CScrollView类,可调用SetScrollSizes()
(3).在CSrollView数据的初始化中,可用SetScrollSizes()函数来设置逻辑值如果需要,你可用开关语句来编程去调用OnVScroll等(如果在这里需要使用键盘!)
(1)在OnLButtonDown()中画一个矩形,并记录这个矩形的左上顶点,和右下顶点。
(2)在OnMouseMove()中,根据鼠标所指的点(即point)画矩形,每一次在同一个地方画两次矩形(即连续两次调用画矩形函数),这样就可插除这个矩形。
(3)在OnLButtonDown(),先保存鼠标左健放开时的这个点,再按照(1)中所保存的点,画一次矩形,就可把刚开始画的矩形擦除。再用最後保存的点画一次矩形,OK,成功了。
记住,再一个地方,用同一种颜色连续画两次,即可擦除第一次所画的图形。