关于编辑框拖放文件

    网上流传的“拖放文件”的方法,并不适用于基于对话框的程序。因为基于对话框的程序的Edit控件一般不是继承来的,而是在资源编辑环境中普通的添加上去的,那么当文件拖动到Edit控件中时,WM_DROPFILES是不能被响应的。

    解决办法:

    “去掉”Edit控件的AcceptFile属性,然后在CXXXDlg::OnInitDialog()中添加CWnd::DragAcceptFiles() ,这样你的主程序就可以响应文件拖放的消息了。注意,一定要去掉Edit控件的AcceptFile属性。

 

添加WM_DROPFILES消息:ON_WM_DROPFILES()

消息响应函数: afx_msg void   OnDropFiles( HDROP   hDropInfo)

 

void CXXXDlg::OnDropFiles( HDROP   hDropInfo)

    char DropFilePath[MAX_PATH] = {0};

    //当第二个参数为-1时,DragQueryFile返回拖放文件的个数。拖放多个文件时需要
    DragQueryFile(
      hDropInfo,
      0,   // 拖放的第0号文件,即第一个文件。
      DropFilePath,
      MAX_PATH
      );
 
     //设置编辑框内容
     CWnd* pWnd = GetDlgItem(IDC_EDIT1);
     pWnd->SetWindowText(DropFilePath);

 }

全部完。

 

参考: http://topic.csdn.net/t/20030110/14/1346358.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值