用摄像头采集了一幅图像,存在内存中;在内存中对图像数据进行了处理,做了相应修改;现在想把修改过的图像数据显示在屏幕上,该如何做呢?

解决方案 »

  1.   

    可以用DrawDibDraw绘制到指定DC上,或者用CreateBitmapIndirect根据图像数据创建位图,然后选入指定DC
      

  2.   

    我定义了一个对话框类,在这个类中的一个函数里实现这个功能。我想在这个函数里获取用户区DC,应该怎么做呢?调用GetDC(hwnd)函数时提示“function does not take 1 parameters”
      

  3.   

    简单说就是如何在类的函数中调用GetDC(hwnd)
      

  4.   

    MFC?
    如果要DC句柄:
        HDC hDC = ::GetDC(GetSafeHwnd());
    如果要CDC指针:
        CDC *pDC = GetDC();
      

  5.   

    我直接用了这条语句:
    HDC HMemDc=GetDC(hwnd);
    就提示出错“function does not take 1 parameters”
      

  6.   

    这样好像得到的是用户区的句柄吧。这副图像的范围有点大,1280×1024,因此用CDC的方法后程序运行出错,是不是显示超出用户区的范围了?
      

  7.   

    HDC HMemDc=GetDC(hwnd);
    _______你注意看我的代码,不一样的。运行出错是什么错?另外,不建议你直接把位图画到窗口DC上,而是新建一个内存DC,把位图画到这个内存DC上,然后在OnPaint(或者是CView类的OnDraw)中把内存DC拷贝到窗口DC上
      

  8.   

    新建内存DC用CreateCompatibleDC
    要刷新窗口用Invalidate
    在OnPaint中用BitBlt把内存DCcopy到窗口DC上。可以在论坛里搜一下双缓冲绘图的帖子。