如果我给DLL传一个RGB数据和一个图片控件的句柄,如何在DLL中绘图,
之前没弄成功,有朋友说是找不到绘图的资源。如果在MFC窗体中,用DrawDibDraw很容易绘出来,但是把RGB和图片控件的句柄传给DLL,
让DLL来绘图片,不知道该如何获取绘图的资源。

解决方案 »

  1.   

    你总得要明确画到哪里去吧?你可以为DLL增加一个传入参数,比如一个HWND,作为绘图对象窗口句柄,然后在其上进行绘图
      

  2.   

    一般情况下窗口和绘图处理是不分离的,也就是在相应窗口的WM_PAINT事件里进行绘图操作。
    把绘图资源传递给DLL,绘图逻辑是怎么个架构?
      如果仅仅在DLL中针对窗口进行绘图而不是在相应窗口的WM_PAINT消息里,画完后是可显示的,但窗口刷新后,
    刚才画的就不存在了
      针对
         如果我给DLL传一个RGB数据和一个图片控件的句柄,如何在DLL中绘图,
    之前没弄成功,有朋友说是找不到绘图的资源。
    可以 根据图片控件的句柄 为
     进行绘图:
        HDC dc = ::GetDC(图片控件的句柄);
        ....进行绘图如果实现窗口和绘图分离,可以在DLL中HOOKWM_PAINT消息,然后根据传递的“图片控件的句柄”
    判断,是则进行绘图。
      

  3.   

    想实现的功能是:
    自己新建一个MFC工程, 然后调用DLL库文件,
    并且只给DLL传递一个Picture控件的句柄,然后调用DLL的Play函数,来绘图.//传入参数是Picture或Static控件的句柄
    DLL提供的接口函数 StartPlayVideo(HWND hPicture);
    DLL负责采集USB摄相头的视频(RGB24), 然后在这个图片控件上绘图.
    ===========================
    如果不封装DLL,直接在MFC工程中来弄的话,相对比较容易.
    但是封装后,MFC工程使用起来会很方便.
      

  4.   

    EXE的OnDraw调用DLL里的DrawFun(CDC *pDC)
      

  5.   

    支持一下,不仅要传窗口句柄(特殊的窗口操作),还要传设备环境句柄:HDC。
      

  6.   

    或者用GetDC看能不能从HWND得到HDC。忘记了
      

  7.   

    记得之前使用海康的视频采集卡,
    他们的开发包,只要传递一个Picture或Static控件的句柄,DLL就会在这个控件上连续绘图,实现播放视频.
    感觉使用起来很方便.
      

  8.   

    海康的SDK,传的是一个HWND吧?