关于使用Picture控件显示图像的问题
我做了一个基于对话框的程序,上面方了两个Picture控件,名字为IDC_BMP,DC_LINE,一个用来显示一个从硬盘里面读出的bmp(256色灰度)图像,另一个用来画线条。
我会用DC_LINE来画线条,但不会用IDC_BMP来显示图像。
我是这么做的:
在对话框的OnPaint()里面:
CWnd *pWnd1=NULL, *pWnd2=NULL;
CDC *pDC1=NULL, *pDC2=NULL;
CGdiObject *pPenOld=NULL;
CPen PenBlue;
PenBlue.CreatePen(PS_SOLID,1,RGB(0,0,255));// 蓝色画笔
pWnd1=GetDlgItem(IDC_LINE);
pDC1=pWnd1->GetDC();
pDC1->Rectangle(0,0,330,330);
pDC1->SelectObject(&PenBlue);
pDC1->MoveTo(10,10);
pDC1->LineTo(10,280);// 垂直轴
pDC1->LineTo(320,280);// 水平轴
...像这样,我可以画出需要的线条
pDC1->SelectObject(pPenOld);// 恢复以前的画笔
ReleaseDC(pDC1);
我想用IDC_BMP来显示从硬盘里面读取的bmp图像,该如何做?
////////////////////////////////////////
我知道还有一种利用双缓存来画的,就是做一个CDC memDC;
所有的画线都在memDC中,最后把menDC复制到DC_LINE的DC中去,这种方法我只会用来画线,
不会用双缓存的方法来显示图像,呵呵。
我要实现的是硬盘中的bmp图像,比如我选择一副图像,就让它在Picture空间IDC_BMP中显示。
换句话说,使用双缓存画的时候
CBitmap bitmap;
CDC dc;
dc.SelectObject(&bitmap);
如何动态更新bitmap里面的像素?
谢谢大家!