如题,我现在做一个水泵监控的系统,一张线路图(AutoCAD格式)上有大概5个水泵,必须每格一分钟显示水泵的开关状态(就像好多组态软件一样),下面是我的思路:
1.将该线路图转为BMP格式,在MFC程序里面加载为背景;
2.将水泵的开和关状态各用一张大小(置形状)相同的图表示;
3.在BMP背景的指定位置,根据水泵的状态载入不同的小BMP图。现在请教两个问题:
一. 按照我的思路能否实现,如何实现,效率高不高?有代码或者现成的类也行。二. 我知道我的思路是一个比较笨的方法,最好是自己有一套自己的作图(示意图即可)及显示软件;请问是否有人做过该类型的软件,给出一个思路,或者直接Email(请将Email中的#改为@)联系我也行,可以花钱购买。zhstars#sina.com
欢迎大家指教,分不够还可以再加!

解决方案 »

  1.   

    我觉得你的思路没问题啊,只是不知道你那张线路图(AutoCAD格式)转成BMP后有多大?
      

  2.   

    回楼上,转成BMP后不大,分辨率最多1400*1050吧,因为本身线路图就是一个简单示意图,挺小的。
    如果我这个方法可行,请再指点,给出具体方法。
      

  3.   

    是我想的太简单了,还是你想的太复杂了,就是用GDI贴图而已啊?
      

  4.   

    哈哈,看来有经验的就是不一样。我自己从没有做过GDI的东西,因此觉得是一个相当复杂的问题。
    那就麻烦老兄指点几个具体的简单问题:
    1.是不是在OnPaint函数中进行重绘,然后重绘的时候是不是背景和开关状态也要一起绘,还是只绘开关状态呢?
    2.我有一张总的示意图,大概有100个左右开关,用这个方法效率如何?会不会很慢呢?
    3.推荐一个GDI贴图的函数吧(不要笑我)!
      

  5.   

    可以在在OnEraseBkgnd里绘背景,OnPaint里绘开关。
    也可以都在OnPaint里绘。
    100个不慢,就是有点闪。
    如果要求不闪,请用双缓冲。代码一搜一大堆。
      

  6.   

    你思路完全可以实现,先把加载BMP背景,然后找到你要贴小图的坐标,利用坐标用GDI+贴图实现,记得网上好像有个CGifplayer的代码,这个程序完全可以达到你要求。我电脑里也有,不过现在不在宿舍。至于泵状态控制你定义通告消息实现比较方便如果状态较多还可以用线程处理,用通告消息处理线程,这样逻辑会很清晰