请问这种功能如何实现? 就是在Windows自带的画图程序中,可以选定一定的范围,选定以后,被选定的矩形用虚线方框显示。我的问题是:如果用虚线画在图像上,等鼠标拖到别的地方,虚线如何擦除呢?或者说原来的内容如何恢复呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我想过很多种办法,都挺麻烦的。比如把原来的图像保存到一个内存位图中,等虚线方框改变后,先用内存位图中的内容恢复原图像内容,再保存新位置的内容,再在新位置画出虚线方框。但是这个挺麻烦。另外,可以用WM_PAINT消息来重画原处内容,这个虽然代码不复杂,但效率好象太低了。我在拖动鼠标的过程中,虚线方框要随时移动,每移动一点点,就要WM——PAINT消息重新恢复整个图像内容。这个还有一种方法,就是在画虚线方框的时候,用取反的方式,就是说把原图象的像素取反,黑的变成白的,白的变成黑的。恢复的时候,只要再取反一次就可以了。但是这样一来,就不能画出自己希望的线条了。有什么简便的方法吗? "......先用内存位图中的内容恢复原图像内容,再保存新位置的内容,再在新位置画出虚线方框......"个人感觉用这种方法是不错的,只是不知道你这段话中的第二步有什么用。在只是在贴图过程中为了提高效率需要考虑Clip区域。好像是原先的虚线框区域和新的虚线框区域的异或吧。 CRectTracker类可以实现.有个成员函数TrackRubberBand,用它2,3句程序就可以实现这个功能.以前做过的.或者用SetROP2反转像素也可以.前者简单点 如果你想在鼠标拖动的时候 显示框,那么你的绘制框的函数就要onmousemove种完成。否则就要在onpaint或ondraw中完成。 内存 紧急求助各位大侠,为什么我的VC输入不了h 拦截WM_DESTROY消息时目标程序出错? 怎么在线程外面结束一个线程! 怎样编程实现目录选择对话框?注意不是文件对话框?谢谢先。 系统信息 这里有100分,快来拿呀 GetProcAddress没有正确返回地址的问题,在线等待!!! 操作符重载 一个基础问题,怎样抓住计算过程的溢出 用MFC写的计算器怎样实现键盘输入功能 登录窗口,主窗口是,当前窗口,这样写代码后,关了win_p1窗口后,当前窗口不会自动关掉,怎么才可以关win_p1关的时候,当前窗口也关掉啊?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货