`
isiqi
  • 浏览: 16710465 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

VC如何实现托拽

阅读更多

从程序外面,托动一个文件到应用程序界面,如何得到这个文件的路径并且激发一个处理消息?

另外,已经知道一个大字符串,现在要统计里面某一个字母的个数,如何统计?如果用While循环的话,要1分种,不现实,有没有什么速度快一点的方法?

谢谢 问题点数:50、回复次数:9Top

<iframe src="/Include/Board.htm?Tags=" frameborder="0" scrolling="no"></iframe>

1 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2006-09-07 14:42:52 得分 15

1.An application that calls DragAcceptFiles with the fAccept parameter set to TRUE has identified itself as able to process the WM_DROPFILES message from File Manager.
在窗口创建时调用DragAcceptFiles(TRUE);然后程序处理WM_DROPFILE消息
2.循环要一秒钟,什么字符串这么大?CString.Find?Top

2 楼SoLike(思危)回复于 2006-09-07 14:43:00 得分 0

在窗口中响应 WM_DROPFILES 消息Top

3 楼baojian88888(机器人)回复于 2006-09-07 14:45:15 得分 5

拖文件:
先给窗口设置WS_EX_ACCEPTFILES风格,然后处理 WM_DROPFILES 消息Top

4 楼SoLike(思危)回复于 2006-09-07 14:45:20 得分 20

Dragging Files

Dragging Files can be supported relatively easily as follows

* Add a OnDropFiles(HDROP hDropInfo) handler to your Dialog. You'll probably have to add this manually, as ClassWizard doesn't seen to support the WM_DROPFILES message for dialogs.

Make the following changes

1) In your .h file add the OnDropFiles to the AFX_MSG section

// Generated message map functions
//{{AFX_MSG(A2hDialog)
...
afx_msg void OnDropFiles(HDROP hDropInfo);
...
//}}AFX_MSG
DECLARE_MESSAGE_MAP()


2) In your .cpp file add the ON_WM_DROPFILES() handler to the AFX_MSG_MAP section

BEGIN_MESSAGE_MAP(MyDialog, CDialog)
//{{AFX_MSG_MAP(MyDialog)
...
ON_WM_DROPFILES()
...
//}}AFX_MSG_MAP
END_MESSAGE_MAP()


Strangely, after doing (1) and (2) the results become visible in the ClassWizard.

3)
Use ClassWizard to add an OnCreate() handler to your dialog. in this add the call

this->DragAcceptFiles(TRUE);

This enables Drag and drop of files on your Dialog's window. You can check this by dragging files over your Window. If the cursor is a "no entry" sign (circle with a line through it) it's not working. If the cursor changes to a file/folder icon with a "+" on it, you're in business.

4) Manually add the OnDropFiles method to look something as follows :-

void MyDialog::OnDropFiles(HDROP hDropInfo)
{

HDROP m_hDropInfo = hDropInfo;
CString Filename;

if (m_hDropInfo) {

int iFiles = DragQueryFile(m_hDropInfo, (UINT)-1, NULL, 0);

for (int i=0; i<ifiles; i++) {

char* pFilename = Filename.GetBuffer(_MAX_PATH);
DragQueryFile(m_hDropInfo, i, pFilename, _MAX_PATH);

// do whatever...

} // for each files...
} // if DropInfo

DragFinish(m_hDropInfo);

m_hDropInfo = 0;

} // End of OnDropFiles

Top

5 楼dch4890164(巴拉克)回复于 2006-09-07 14:45:32 得分 0

楼上两位正确,鉴定完毕,飘过!Top

6 楼kilojin(梅子黄时雨,我在编程时)回复于 2006-09-07 14:47:42 得分 0

一个Log文件,大约10M,现在要统计里面某一个类别Log的数量,LogKey是有的,不过,太多,Find 循环统计,要很长时间
我记得Ultraedit里面,有这个功能,一下子就统计出来了,不知道如何实现的
Top

7 楼Mackz(在相互)回复于 2006-09-07 16:40:10 得分 5

主要的时间应该在读取文件上了,映射一下。比较必需要循环的,提高效率的方法是在查找上,比如模式匹配。Top

8 楼codewarrior(会思考的草)回复于 2006-09-07 16:59:23 得分 5

关于拖动可以看我的blog.
速度快主要是要优化算法,使用映射文件可能会好一点.Top

9 楼immc1979(毛毛虫)回复于 2006-12-06 14:09:31 得分 0

标记一个

分享到:
评论

相关推荐

    VC实现程序托盘功能

    在现在的许多程序中都加入了托盘功能,如:QQ,飞信,杀毒软件等,那么我们是否也十分期望在自己的程序中加入托盘功能呢,那么就请看托盘实例吧!

    用vc实现串口通信的完整代码.rar

    用vc实现串口通信的完整代码.rar用vc实现串口通信的完整代码.rar用vc实现串口通信的完整代码.rar用vc实现串口通信的完整代码.rar用vc实现串口通信的完整代码.rar用vc实现串口通信的完整代码.rar用vc实现串口通信的...

    vc实现VS开发界面

    vc实现VS开发界面vc实现VS开发界面vc实现VS开发界面vc实现VS开发界面vc实现VS开发界面vc实现VS开发界面vc实现VS开发界面vc实现VS开发界面vc实现VS开发界面vc实现VS开发界面vc实现VS开发界面vc实现VS开发界面vc实现VS...

    VC实现聊天室服务端及客户端程序

    《VC实现聊天室服务端及客户端程序》 在IT领域,开发一款聊天室程序是学习网络编程和客户端-服务器架构的常见实践。本项目利用Microsoft Foundation Classes (MFC)库,一个C++类库,来构建一个具备基本聊天功能的...

    VC实现多语言程序版本

    在Visual C++(简称VC)环境下,实现多语言程序版本主要涉及到资源文件、MFC框架、国际化和本地化策略等多个方面。下面我们将深入探讨如何在VC中实现这一功能。 1. **资源文件与资源脚本** 多语言支持首先从资源...

    VC实现画图软件

    自己写的一个画图软件 VC实现 很好用 正常运行

    vc实现的ping程序

    "vc实现的ping程序"是一个使用VC编写的命令行工具,它利用Internet控制消息协议(ICMP)来实现网络连通性的检测功能,类似于操作系统内置的`ping`命令。这个程序在DOS环境下运行,用户可以输入目标IP地址或域名,...

    VC实现进程之间的通讯

    在Windows编程环境中,Visual C++(简称VC)是一种强大的开发工具,可以用来创建各种应用程序,包括实现进程间的通信。进程间通信(IPC,Inter-Process Communication)是多进程系统中不同进程之间交换数据的一种...

    用VC 实现 examp画图功能

    VC实现简单画图功能, 用VC 实现 examp画图功能

    VC实现禁用与启用网卡

    VC实现禁用与启用设备,范例禁用与启用网卡

    线程池的VC实现例子

    而"threadpool.rar"可能是另一个线程池的实现版本,"VC实现线程池.txt"很可能是对VC环境下线程池实现的文本说明。 通过学习和分析这些文件,我们可以更深入地理解线程池的原理,以及如何在VC环境中有效地利用线程池...

    VC 实现数字水印 源码

    本项目"VC实现数字水印"提供了使用Visual C++(简称VC)编程语言实现数字水印的源代码,这对于学习和理解数字水印技术非常有价值。 首先,我们要理解数字水印的基本原理。数字水印通常分为可见水印和不可见水印两种...

    vc实现自动关机,修正了bug,很好用

    vc实现自动关机,修正了bug,很好用vc实现自动关机,修正了bug,很好用

    VC实现简单的DDE进程间通讯

    **VC实现简单的DDE进程间通讯** 在计算机编程中,进程间通信(IPC,Inter-Process Communication)是一种技术,使得不同进程之间可以共享数据、协调工作。DDE(Dynamic Data Exchange)是微软在Windows操作系统中...

    VC实现HTTPGetPost源码

    VC实现HTTPGetPost源码,实现包的获取与post相关,可以学习

    VC实现了一个功能简单的HTTP代理服务器

    VC实现了一个功能简单的HTTP代理服务器

    vc实现qq聊天-包含服务器和客户端

    vc实现qq聊天-包含服务器和客户端,易于扩充和改动。

    VC实现远程CMD的功能

    总之,利用VC实现远程CMD功能是一项技术含量较高的工作,它涵盖了网络编程、进程管理、输入/输出重定向等多个方面。通过这个过程,不仅可以提升C++编程能力,还能深入理解Windows系统的工作机制。

    VC实现标题栏添加按钮

    在“VC实现标题栏添加按钮”的项目中,我们看到的文件主要是MFC应用程序的源代码文件。以下是对这些文件的简要说明: 1. TitleButtonTest2.aps:这是MFC工程的资源文件,包含了程序的资源信息,如对话框、图标、...

    图像处理小波算法的VC实现.rar

    《图像处理小波算法的VC实现》 在计算机科学领域,图像处理是一项至关重要的技术,广泛应用于医学诊断、遥感图像分析、视频压缩等领域。小波算法作为一种强大的数学工具,已经在图像处理中展现出其优越性。它能对...

Global site tag (gtag.js) - Google Analytics