类似于C#或者Dephi的界面编辑是怎么实现的啊?如何能够用拖拉来实现在view中绘制窗口,按钮等等控件呢?而且这些控件有自己的消息处理?那位大哥有这方面的思路能够说一下么?

解决方案 »

  1.   

    MSDN/MFC Samples/Drawcli sample
      

  2.   

    有没有简单一些的实现方式呢?使用OLE很麻烦的
      

  3.   

    我记得MFC中有个类可以实现托拽的的功能,就是显示一个矩形在view上,可以调整大小和位置的功能。
    只是要实现如C#等这种功能的恐怕比较复杂了。
    我也不懂,学习。
      

  4.   

    LongLongAgoImBoy(ThereIsAMe)
    你说的是CRectTracker,可以用来绘制控件,但是我还想能够定义控件的不同的属性,就有一些麻烦了
      

  5.   

    关于拖拉一点个人想法:画上去的一般是一个图形元素,比如矩形,椭圆。可以编辑这个图形元素。为这个图形元素维护一个id和一个数据结构,表明他的类型,比如button.视图中截获所有的鼠标事件,通过一个标准的framework将鼠标位置和下面的图形元素联系起来,并根据图形元素类型(比如button)引出相应的操作。这个操作被激发到特定处理类的操作函数,这个操作函数根据传递进来的参数信息,进行相应的操作和响应。可能这个操作能被用户简单的DIY.软件维护这个framework的沟通机制。
      

  6.   

    bars是什么呢?如果后台维护的话,必须要定义一大堆的东西了,这样要保存和处理的东西很多,不一定会方便的。
    顺便问问:类似于vc编辑器中的标尺和定位线怎么实现呢?
      

  7.   

    拖拉实现在view中绘制窗口,按钮等等控件,而且这些控件有自己的消息处理,恐怕不能这么动态吧
      

  8.   

    bar是一个要维护的对象,上面能够容纳其他控件。bar本身处理好自己在主框架的停靠位置,动态size。主框架有一套查询和定位机制,bar主要利用这些机制,保证bar和bar之间不覆盖,然后能够通过自身id得到对象并互相通信。
      

  9.   

    这样说来bar和CRectTracker很相似啊!我用CRectTracker在窗口绘制了图元后,然后根据ID使用链表在后台维护对应的属性页(自己定义的),这样理论上可行。不知道实际会怎么样?
    类似于vc编辑器中的标尺和定位线怎么实现呢?