VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 2034|回复: 0

[分享] WinSDK 编辑框获取拖拽路径

[复制链接]
68_avatar_middle
最佳答案
0 
online_vip 发表于 2020-5-18 11:42:18 | 显示全部楼层 |阅读模式
本帖最后由 雨夹血 于 2020-5-18 11:52 编辑

窗口函数设定为  WM_DROPFILES 编辑框获取不到内容  需要另外添加一个WNDPROC  函数

在初始化函数里面添加,函数外面添加 static WNDPROC DlgEdit;

  1. BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
  2. {
  3.     // Set app icons
  4.     HICON hIcon = LoadIcon((HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE) ,MAKEINTRESOURCE(IDI_ICONAPP));
  5.     SendMessage(hwnd, WM_SETICON, TRUE,  (LPARAM)hIcon);
  6.     SendMessage(hwnd, WM_SETICON, FALSE, (LPARAM)hIcon);
  7.    
  8.     //
  9.     // Add initializing code here
  10.     //

  11.     HWND hEdit = GetDlgItem(hwnd,IDC_EDIT1);
  12.    // DragAcceptFiles(hEdit,TRUE);
  13.     DlgEdit = (WNDPROC)SetWindowLong(hEdit,GWL_WNDPROC,(LONG)EditProc);
  14.    
  15.     return TRUE;
  16. }
复制代码




添加函数 LRESULT CALLBACK EditProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);


  1. LRESULT CALLBACK EditProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
  2. {
  3.      TCHAR szFilePath[MAX_PATH];
  4.                  switch(uMsg)
  5.                  {
  6.                                                 
  7.                          case WM_DROPFILES:
  8.                                  memset(szFilePath,0,sizeof(szFilePath));
  9.                                                                 
  10.                                  DragQueryFile((HDROP)wParam,0,szFilePath,_countof(szFilePath));
  11.                                                              
  12.                                  if( SetWindowText(hWnd,szFilePath) == 0){
  13.                                 MessageBox(hWnd,TEXT("设置编辑框内容失败"),TEXT(""),MB_OK);                                        
  14.                                 }

  15.                                  DragFinish((HDROP)wParam);
  16.                                  break;
  17.                  
  18.                  }

  19.                 return CallWindowProc(DlgEdit,hWnd,uMsg,wParam,lParam);
  20. }
复制代码


WinSDK 编辑框获取拖拽路径

评分

参与人数 1热心值 +2 收起 理由
75_avatar_small wl1383838438 + 2 赞一个!

查看全部评分





上一篇:也是今天看见几位前辈的经历,突然有感而发。
下一篇:c++多态与重写
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-12-8 16:57

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表