如果大侠们用过Mutisilm或Protel软件,就知道里面的电阻之类的元器件我们可以实现拖放和连线,用VC我们自己编程序,应该如何实现它呢?请解答,谢谢

解决方案 »

  1.   

    你可以看看MSDN中的DrawCli示例
      

  2.   

    重写CButton类,自己需要处理WM_LBUTTONDOWN,WM_LBUTTONUP,WM_MOUSEMOVE消息
      

  3.   

    只说原理:首先你要定义一个画布。可能也就是一个窗体。然后所有被画在上面的
    都视为一个对象(或者叫元件),元件是父类,所有被画在上面的都是元件的子类,
    包括Button或者别的什么,然后定义一个操作类,操作类控制鼠标操作(拖放),
    操作类操作元件父类,通过多态决定具体的子类。如此可实现任何东西的拖动。
    用不着Button处理WM_LBUTTONDOWN,WM_LBUTTONUP,WM_MOUSEMOVE消息,
    它只负责画自己就好了。
      

  4.   


    这个是菜鸟级的做法了,你直接响应按钮的WM_NCHITTEST直接返回return HTCAPTION; 即可
      

  5.   

    重绘?OnDraw ......很多消息对你 最重要 是 鼠标移动
      

  6.   

    用MFC控件有诸多不方便。等以后元件规模大了,麻烦自然就多了。
    一般都是自绘的元件。