VC SDK程序求助
在VC中有没有像C中getimage()的函数,可以存储一块区域图像,然后用putimage()将图像画到另一个地方?我在写一个SDK程序。目的是想画一些图,然后想达到移...
在VC中有没有像C中getimage()的函数,可以存储一块区域图像,然后用putimage()将图像画到另一个地方?我在写一个SDK程序。
目的是想画一些图,然后想达到移动的效果,所以需要用一个空白的一样大小的图覆盖这个图,然后在另一个地方重画,因为这个图比较复杂,不便一点一点画出,所以希望一次性的整个存储下来,整体处理。
希望高手指点。
我是直接画图,然后对图形操作,不是对位图操作,更不是图像文件,而且我现在写的是纯SDK程序,不是MFC... 展开
目的是想画一些图,然后想达到移动的效果,所以需要用一个空白的一样大小的图覆盖这个图,然后在另一个地方重画,因为这个图比较复杂,不便一点一点画出,所以希望一次性的整个存储下来,整体处理。
希望高手指点。
我是直接画图,然后对图形操作,不是对位图操作,更不是图像文件,而且我现在写的是纯SDK程序,不是MFC... 展开
1个回答
展开全部
1.如果你是现成的图像的话
可以用MFC的PICTURE CONTROL控件
这个控件支持BITMAP图像ICON图标等
移动它也很简单还不存在刷新的问题
直接GetDlgItem(IDC_PICTURE)->MoveWindow(x,y,cx,cy,TRUE);
就搞定了
2.GDI (局限于BITMAP)
HBITMAP bitmap;
bitmap = LoadBitmap(...);
HDC hDC;
::SelectObject(hDC,&bitmap);
然后对hDC用BitBlt进行移动操作即可
3.GDI+ (几乎任意图像文件)
Image *image = new Image(L"...");
Graphics *graphic = new Graphics();
graphic->DrawImage(image,PointF(x,y));
不过在你用GDI系列进行操作的时候已经要记得刷新屏幕或者是你的内存DC,不然会出现拖痕的
---------------------------------------------------------
"我是直接画图,然后对图形操作,不是对位图操作,更不是图像文件"
关于这一点,GDI和GDI+都可以实现啊
GDI的话,就是创建双缓冲,
HDC SrcDC;
HDC DestDC;
在SrcDC里面进行绘图,画完了以后你用BitBlt传递图像到DestDC,关于你那个移动什么的,都在BitBlt里面参数实现了,而且这样也满足你的一次性移动的要求啊
如果用GDI+的话用的也是同样的技术
只不过你可以创建一个Bitmap的画布
Bitmap bitmap(长,宽,颜色(默认最好));//这个只是用来画的,并不是说你在对BITMAP进行操作
Graphics g1(&bitmap);
//此处使用g1进行绘图
Graphics g2(DestDC);
g2.DrawImage(&bitmap,PointF(x,y));
x,y是你指定移动到的位置
可以用MFC的PICTURE CONTROL控件
这个控件支持BITMAP图像ICON图标等
移动它也很简单还不存在刷新的问题
直接GetDlgItem(IDC_PICTURE)->MoveWindow(x,y,cx,cy,TRUE);
就搞定了
2.GDI (局限于BITMAP)
HBITMAP bitmap;
bitmap = LoadBitmap(...);
HDC hDC;
::SelectObject(hDC,&bitmap);
然后对hDC用BitBlt进行移动操作即可
3.GDI+ (几乎任意图像文件)
Image *image = new Image(L"...");
Graphics *graphic = new Graphics();
graphic->DrawImage(image,PointF(x,y));
不过在你用GDI系列进行操作的时候已经要记得刷新屏幕或者是你的内存DC,不然会出现拖痕的
---------------------------------------------------------
"我是直接画图,然后对图形操作,不是对位图操作,更不是图像文件"
关于这一点,GDI和GDI+都可以实现啊
GDI的话,就是创建双缓冲,
HDC SrcDC;
HDC DestDC;
在SrcDC里面进行绘图,画完了以后你用BitBlt传递图像到DestDC,关于你那个移动什么的,都在BitBlt里面参数实现了,而且这样也满足你的一次性移动的要求啊
如果用GDI+的话用的也是同样的技术
只不过你可以创建一个Bitmap的画布
Bitmap bitmap(长,宽,颜色(默认最好));//这个只是用来画的,并不是说你在对BITMAP进行操作
Graphics g1(&bitmap);
//此处使用g1进行绘图
Graphics g2(DestDC);
g2.DrawImage(&bitmap,PointF(x,y));
x,y是你指定移动到的位置
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询