现在写了个类,继承于CWnd,我想问下,这类能不能响应DropFiles消息(也就是文件拖曳消息)。那如何给这类设置Accept Files属性呢,我个人认为,应该首先设置Accept Files属性才能响应这消息。我试了,没成功。
  现在真不知道应该如何下手了,望高人指点一二。非常感谢

解决方案 »

  1.   

    设置Accept Files属性,可调用CWnd类的成员函数DragAcceptFiles(TRUE)或API函数DragAcceptFiles(HWND hWnd,BOOL fAccept)
    我是这样做的,但是为什么就是行不通呢?真郁闷啊
      

  2.   

    怎么没人呢???
    我把我的做法说下,大家看看哪有问题  谢谢1.在这类的Create函数里面添加:DragAcceptFiles(TRUE);
    2.在这类的.h里面添加:afx_msg void OnDropFiles(HDROP hDropInfo);
    3.在这类的.cpp里面添加
         void CXXXXX::OnDropFiles(HDROP hDropInfo) 
       {
            //代码

      CWnd::OnDropFiles(hDropInfo);
       }问题出现在这消息上,但是我没找出问题来。
    今天好忙,现在头有点晕晕的。。谢谢
      

  3.   

    实现drag and drop,得有一系列的步骤。不是一两句话能说清楚的。www.codeguru.com上有很多这样的例子,可以去看一看。
      

  4.   

    怎么不行?OnDropFiles没被调用吗?
      

  5.   

    调用了,但是程序直接崩溃调试错误显示:
    CGfxOutBarCtrl::Create(unsigned long 1342177280, const tagRECT & {top=0 bottom=348 left=0 right=207}, CWnd * 0x0013f7a8 {CSubFunction hWnd=???}, unsigned int 2008, const unsigned long 1020) line 211
    CSubFunction 是主程序的一个子窗口,此时句柄为空,不知何原因但是去掉DropFiles这消息,什么问题都没有。。不知如何解决
      

  6.   


    不会吧,一系列步骤???
    我试了下对话框的拖曳,不难啊。但是现在继承于CWnd的拖曳,怎么就不行呢????希望我能今天搞定
      

  7.   

    试试在OnCreate()里调。CWnd在创建之前的句柄是空值,所以会崩溃。
      

  8.   

    我刚才说错了。经过我在计算机上试验,很快就成功了。并不需要一系列的步骤。
    可能是楼主调用DragAcceptFiles的时机不对。比如调用DragAcceptFiles之后,窗口destroy了。等等。
    再仔细查看一下代码。
      

  9.   

    已经ok  
    的确如wangyt 所说,DragAcceptFiles的时机不对  
    恩 非常谢谢大家