windows拖拽文件设置,windows中文件窗口移动时应拖动

  windows拖拽文件设置,windows中文件窗口移动时应拖动

  这个支持程序的下载地址是:http://download..net/detail/morewindows/5128654.

  请注明出处,原地址:http://blog..net/morewindows/article/details/8634451.

  欢迎来到http://weibo.com/MoreWindows,微博

  前面六篇文章已经介绍了Windows界面编程,内容如下:

  1.《Windows界面编程第一篇位图背景与位图画刷》

  2.《Windows界面编程第二篇半透明窗体》

  3.《Windows界面编程第三篇异形窗体普通版》

  4.《Windows界面编程第四篇异形窗体高富帅版》

  5.《Windows界面编程第五篇静态控件背景透明化》

  6.《Windows界面编程第六篇动画启动效果(动画效果显示及隐藏窗口)》

  本文《Windows界面编程第七篇文件拖拽(文件拖放)》介绍如何在程序中添加文件拖放(文件拖放)操作。文件拖放(文件拖放)操作可以归类为Windows程序的界面操作。因此,本文也包含在Windows界面编程系列中。

  文件拖拽功能可以有效提升用户体验。在VC中,主要使用——DragAcceptFiles、DragQueryFile和DragFinish三个函数来支持文件拖动功能。先介绍一下这三个功能(为了更好的学习英语,功能会尽量用英文介绍)。

  我。拖放对象

  函数:当窗口接受放下的文件时注册。在f accept参数设置为true的情况下调用dragaccepted文件的应用程序已经确定自己能够处理来自文件管理器的WM_DROPFILES消息。

  功能原型:

  //By more windows-(http://blog . . net/more windows)

  VOIDDragAcceptFiles(

  HWNDhWnd,

  布尔接受

  );

  参数描述:

  第一个参数hWnd:

  正在注册是否接受丢弃文件的窗口的标识符。

  第二个参数fAccept:

  一个值,指示由hWnd参数标识的窗口是否接受丢弃的文件。该值为TRUE表示接受丢弃的文件,为FALSE表示停止接受丢弃的文件。

  对于对话框程序,您还可以选择其属性-扩展样式,然后单击接受文件选项。

  我。拖拽文件

  函数:检索由成功的拖放操作产生的被拖放文件的名称。

  功能原型:

  //By more windows-(http://blog . . net/more windows)

  UINTDragQueryFile(

  HDROPhDrop,

  UINTiFile,

  LPTSTRlpszFile,

  UINTcch

  );

  参数描述:

  第一个参数hDrop:

  HDROP标识符,即响应函数中的wParam参数

  第二个参数iFile:

  要查询的文件的索引号,从0开始。可以同时拖放多个文件,所以需要一个索引号来区分。如果该参数为0xFFFFFFFF,则该函数返回拖动的文件数。

  第三个参数lpszFile:

  用于存储文件名的缓冲区的第一个地址。

  第四个参数cch:

  缓冲长度

  函数返回值:如果iFile为0xFFFFFFFF,返回拖动文件的个数;否则,返回对应索引号的文件名长度。

  第三次拖拽完成

  函数:释放系统分配给应用程序用于传输文件名的内存。

  功能原型:

  //By more windows-(http://blog . . net/more windows)

  voiddragffinish(hdropdrop);

  下面是带有详细注释的示例程序代码。(下载地址:http://download..net/detail/morewindows/5128654)

  [CPP]查看平面图//文件拖拽ahref= http://博客。。net/更多窗口/文章/详细信息/8634451 http://博客。。net/更多窗口/文章/详细信息/8634451/a//by more windows-(http://博客。。net/更多窗口)/(r)第一步#包括shellapi.h #pragmacomment(lib,“shell 32。lib ")/第二步DragAcceptFiles(hwnd,true);//第三步uintnfilenum=dragqueryfile(hdrop,0 xffffffff,NULL,0);拖曳文件个数//第四步DragQueryFile(hDrop、I、strFileName、MAX_PATH):获得拖曳的文件名# include stdafx。h # include vector # include cstring using mepacestd;//文件拖拽第一步#包括shellapi.h #pragmacomment(lib, shell 32。lib )constcharsz appname[]=文件拖拽_更多窗口(http://博客。。net/更多窗口)’;boolin application(hintanchinss,intncmdshow);lrsultcallbackndproc(hwndhwnd、uintmessage、wparamwparam、LPAR am);intapientrywinnin(hintancehintance,hinstancehprevinstance,LPSTRlpCmdLine,intncmdshow){//全部:placecodehere .msgmsg如果(!init application(hintance,ncmdshow)){ return 0;}while(GetMessage( msg,NULL,0,0)){翻译消息(msg);调度消息(msg);} returnmsg。参数返回0;} boolin application(hint ance,intncmdshow){ hwnd;wndclasswndclasswndcclass。style=cs _ hredraw cs _ vredrawwndclass。lpfnwndproc=wndprocwndclass。cbclsextra=0wndcclass。cbwn德克斯特=0;wndclass。hinstance=0wndcclass。hicon=加载图标(null,idi _ application);wndcclass。hccursor=load cursor(null,IDC_ARROW):wndcclass。hbrberbackground=(hbrush)(color _ window 1);wndcclass。lpsz菜单名称=null:wndcclass。lpsz类名=SZ appname如果(!注册类(wndcclass)){ messagebox(空值,programneedwindowsnt!szAppName、MB_ICONERROR:返回假的;}hwnd=CreateWindow(szAppName、szAppName、ws _ overlappedwindow、CW_USEDEFAULT、CW_USEDEFAULT、CW_USEDEFAULT、NULL、hinstance、NULL);if(hwnd==NULL)返回假的;ShowWindow(hwnd,ncmdshow);更新窗口(hwnd):返回TRUE:} lrsultcallbackndproc(hwndhwnd、uintmessage、wparamwparam、LPAR am){静态向量字符串s _ vetfilenames开关(消息){caseWM_CREATE://文件拖拽第二步dragacceptfilesdragaccept文件(hwnd,true);返回0;//文件拖拽第三步dragqueryfile nddragqueryfilecasewm _ drop files:{ hdrops drop=(hdrop)wparam;uintnfilenum=dragqueryfile(hdrop,0 xffffffff,NULL,0);//拖拽文件个数charstrfilename[max _ path];for(inti=0);我的火柴;(i ){DragQueryFile(hDrop,I,strFileName,max _ path);//获得拖曳的文件名s _文件名。push _ back(strfilename):} drag finish(hdrop);//释放hdroptinvalidect(hwnd,NULL,true);}返回0;案例WM _ paint:{ hdc hdc;绘画构造;矢量字符串:迭代器位置;inti,y;hdc=开始绘制(hwnd,PS);//显示拖拽的文件名y=0for(pos=s _ vetfilenames。begin());准备好了吗?=s _ vetfilenames。end();pos){ text ut(hdc,20,y,pos- c_str()、str len(pos-c _ str());y=30}结束(hwnd,PS);}返回0;case WM _ destroy:post quiet message(0);返回0;} retrnefwindowproc(hwnd、message、wParam、lparam)

  运行结果截图如下,在桌面上选取了几个快捷方式然后拖到程序窗口中:

  通过本文,可以看出要为程序添加文件拖拽(文件拖放)功能,只要四步即可。

  第一步

  #包括shellapi.h #pragma注释(lib,“shell32.lib”)

  第二步

  DragAcceptFiles(hwnd,true);

  第三步

  uint NFL enum=dragqueryfile(hdrop,0 xffffffff,NULL,0);拖曳文件个数

  第四步

  DragQueryFile(hDrop、I、strFileName、MAX_PATH):获得拖曳的文件名

  欢迎继续参考《Windows界面编程第八篇listbox彩色显示隔行变色》美元

  地址是http://博客。。net/更多窗口/文章/详细信息/8656061

  本文配套程序下载地址为:http://下载。。net/detail/more windows/5128654

  转载请标明出处,原文地址:http://博客。。net/更多窗口/文章/详细信息/8634451

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • windows强制结束进程命令,cmd强制关闭进程命令
  • windows下的python opencv安装攻略,ubuntu安装opencv-python
  • winserver2016更改远程桌面端口,winserver2012修改远程桌面端口,Windows Server 修改远程桌面端口的实现
  • winserver2012配置iis,win2012 iis配置,Windows Server 2016服务器IIS配置的详细步骤(图文)
  • windows钩子函数,windows钩子基础教程
  • windows钩子函数,windows钩子基础教程,Windows的钩子机制详解
  • windows批处理命令,windows批处理官方教程
  • windows批处理命令,windows批处理官方教程,windows批处理命令教程
  • windows下怎么安装perl,linux安装perl环境
  • windows下怎么安装perl,linux安装perl环境,Windows10下安装配置 perl 环境的详细教程
  • windows下cmd中切换路径与目录查看,cmd怎么切换路径到文件夹
  • windows下cmd中切换路径与目录查看,cmd怎么切换路径到文件夹,cmd命令打开及切换目录路径的实现
  • windowsandroid手机版下载,windowsandroid安装apk
  • windowsandroid手机版下载,windowsandroid安装apk,WindowsAndroid 安装教程详解
  • windows2007下载,win2008server下载
  • 留言与评论(共有 条评论)
       
    验证码: