热情软件屋

 

采集的数据是放到Bitmap数组里的,总是白色


编号:QA004756
建立日期: 2003年11月8日 最后修改日期:2003年11月8日
所属类别:

王成飞 :
    操作系统: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);
    

回答:

    据我所知到目前为止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

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio