我做的是一个标签设计的程序, 主要实现以下功能:
能作基本图形的绘制, 各种条形码的绘制,作图模式为MM_HIMETRIC,实现视图的无级缩放,定制标签的大小, 以上功能基本上都已经实现, 现在有一个很重要的作图问题我实现不了,很着急:
当鼠标点击条形码移动的时候, 每个条形宽度总是在屏幕上显示大小变动(应该是宽度固定的),我是这样实现的, 当鼠标移动过程中重新绘制一遍条形码, 再对这个区域进行更新。
我想可能是不是要重新创建一个内存DC,在这个DC里面把条码绘制好了再复制到屏幕上, 这样的话绘制条形码的起点每次都在DC的原点就不会因为起点坐标不同而导致绘制条码时的宽度每次都不同,不知道是不是这样。希望能有个好的建议或者有原码更好谢谢!
能作基本图形的绘制, 各种条形码的绘制,作图模式为MM_HIMETRIC,实现视图的无级缩放,定制标签的大小, 以上功能基本上都已经实现, 现在有一个很重要的作图问题我实现不了,很着急:
当鼠标点击条形码移动的时候, 每个条形宽度总是在屏幕上显示大小变动(应该是宽度固定的),我是这样实现的, 当鼠标移动过程中重新绘制一遍条形码, 再对这个区域进行更新。
我想可能是不是要重新创建一个内存DC,在这个DC里面把条码绘制好了再复制到屏幕上, 这样的话绘制条形码的起点每次都在DC的原点就不会因为起点坐标不同而导致绘制条码时的宽度每次都不同,不知道是不是这样。希望能有个好的建议或者有原码更好谢谢!
解决方案 »
- MS TV Video control控件如何使用
- win7 对话框重绘问题
- 关于OnPaint和OnDraw
- 多线程变量如何加保护?
- 请教有经验的网络编程高手!什么情况下错误不必要重新连接。
- 我的界面上有一个Progress控件,我想在不需要用它时,将它完全隐藏(界面上看不到边框),怎么做?
- 哪儿有《mfc windows程序设计》中文版下载
- VC WIN32定时器
- 怎么样可以在进程与进程之间实现通讯?比如内存文件什么的,请高手赐教!
- 如何删除开始按钮下的‘文档’子菜单下的内容???
- 一个workspace中有二个project是什么意思?
- 50分:对对话框使用向导时发生错误,a duplicate insert block exists 。。。。
如果有请打开工程,打开drawobj.cpp, 查找 "switch (m_nShape)"
然后修改如下代码运行后作一个矩形图然后再慢慢移动仔细看看是不是宽度不固定
case rectangle:
{
pOldBrush = (CBrush*)pDC->SelectStockObject(NULL_BRUSH);
CRect rc = rect;
rc.NormalizeRect();
int w = 10;
for (int i= 0; i<=rc.Width() / w; i++)
{
brush.DeleteObject();
brush.CreateSolidBrush(RGB(0, 0, 0) );
if(i % 2 == 0)
pDC->FillRect(CRect(rc.left + i * w, rc.top, rc.left + (i + 1) * w, rc.bottom) , &brush);
}
pDC->Rectangle(rect); }
break;
参数都和视图DC一样, 绘制好了再向memDC BitBlt呢具体应该怎么做啊?