Windows下最常见的图形便是编辑框,如能够将编辑框插入到软件中去,必定增加软件的可用性。现在的问题是,软件的图形对象的层次和接口已经存在,即Graphic类层次,而且使用这些接口的软件框架也已成形。如何将编辑框无缝的引入到软件中去是个迫切要解决的问题。一种方法是生成新的Edit子类,这个子类负责所有有关Edit图形的存储,显示等操作,这种方法需要对Edit的图像结构有精深的了解,数据结构和算法都需要自己设计,这种方法固然可行,但是有不小的难度。后来发现,MFC有一个类叫做CEdit,这个类代表了一个 Edit对象,利用这个对象的接口,可以很轻松的实现对Edit图形的操作。现在的问题是,CEdit类的接口和Graphic类的接口不兼容,无法立即应用在现有的程序框架中,这样的情况怎么处理呢?去查了下其实就是在Graphic类派生个CExEdit类,其中CExEdit中包含一个CEdit的对象。但Graphic类所有的基类图形的实现都是在ondraw函数中实现的,编辑框类CExEdit怎么实现绘图呢?上面的方法pEdit->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER, rect, pFrame, 1); 一直在闪烁 程序崩溃,那要怎么实现呢?高手给个方法吧,一直都没有解决,急死了都。谢谢 

解决方案 »

  1.   

    一直在闪烁?
    如果能显示,说明已经成功,一直闪烁,说明你那儿有BUG需要修改;
    你查查,是不是什么东西在不停的刷新?
      

  2.   

    CEdit是根据你设定的窗口参数| WS_CHILD | WS_VISIBLE | WS_TABSTOP ...用Create画出来的,而且Create不仅仅是画,还有别的内容,你要自己画的话可以研究下Create,提取其中“画”的部分作为另一个函数,你的OnDraw里面调用此函数
      

  3.   

    我觉得二楼说的有道理 有谁知道里面哪部分是关于draw的吗?
     我看到Java里有个适配器的概念,貌似这就是要采用适配器的方法 有了解的人可以帮我一下吗?
      

  4.   

    用了Edit控件就不要去重绘了,只要创建好、设好位置和文本即可,你的CExEdit类的OnDraw函数可以留空么。
      

  5.   

    关键是我的位置是要可以变化的 Edit控件画了就不能变了 这样设计不是很好吧?
      

  6.   

    CEdit是根据你设定的窗口参数| WS_CHILD | WS_VISIBLE | WS_TABSTOP ...用Create画出来的,而且Create不仅仅是画,还有别的内容,你要自己画的话可以研究下Create,提取其中“画”的部分作为另一个函数,你的OnDraw里面调用此函数