采集的数据是放到Bitmap数组里的,总是白色
编号:QA004756
建立日期: 2003年11月8日 最后修改日期:2003年11月8日
所属类别:
Q
王成飞
:
操作系统:WIN
编程工具:VC++
问题:我的的程序要对数据采集卡采集的数据进行位图显示。要求每个像素点用12位表示没行256个点。采集的数据是放到数组里的。但是我用下面的代码时改变pbitmap.bmBitsPixel的值,总是白色。好象只能是1才行。pbitmap.bmPlanes也一样。
1,请问还有我错在哪儿?
2,还有什么方法可以处理我的功能?
LONG buffer[32000];
CDC SourceDC,* pControlDC=pWnd->GetDC();
pWnd->Invalidate();
BITMAP pbitmap;
static HBITMAP hBitmap;
CBitmap bitmap;
pbitmap.bmType=0;
pbitmap.bmWidth=40;
pbitmap.bmHeight=256;
pbitmap.bmWidthBytes=40;
pbitmap.bmPlanes=1;
pbitmap.bmBitsPixel=12;
pbitmap.bmBits=buffer;
SourceDC.CreateCompatibleDC(pControlDC);
bitmap.CreateBitmapIndirect(&pbitmap);
SourceDC.SelectObject(bitmap);
pControlDC->BitBlt(10,10,256,256,&SourceDC,0,0,SRCCOPY);
pWnd->ReleaseDC(pControlDC);
A回答:
据我所知到目前为止BITMAP.bmPlanes是一个保留值,且必须为1。至于bmBitsPixel比较复杂。
我看你填的参数不对,我的仅供参考:
pbitmap.bmWidth=256;//不是40;
pbitmap.bmWidthBytes=256*3/2;//就这样,留着编译器计算
pbitmap.bmHeight=40;//据我猜测,你把width和height弄翻了
请参考msdn。
此问题由zhaolei_c回答。
附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, 图形、图象, picture, graph, image, draw。
| |
|
|
| |
|
|