从程序外面,托动一个文件到应用程序界面,如何得到这个文件的路径并且激发一个处理消息?
另外,已经知道一个大字符串,现在要统计里面某一个字母的个数,如何统计?如果用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
标记一个
分享到:
相关推荐
在现在的许多程序中都加入了托盘功能,如:QQ,飞信,杀毒软件等,那么我们是否也十分期望在自己的程序中加入托盘功能呢,那么就请看托盘实例吧!
用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实现聊天室服务端及客户端程序》 在IT领域,开发一款聊天室程序是学习网络编程和客户端-服务器架构的常见实践。本项目利用Microsoft Foundation Classes (MFC)库,一个C++类库,来构建一个具备基本聊天功能的...
在Visual C++(简称VC)环境下,实现多语言程序版本主要涉及到资源文件、MFC框架、国际化和本地化策略等多个方面。下面我们将深入探讨如何在VC中实现这一功能。 1. **资源文件与资源脚本** 多语言支持首先从资源...
自己写的一个画图软件 VC实现 很好用 正常运行
"vc实现的ping程序"是一个使用VC编写的命令行工具,它利用Internet控制消息协议(ICMP)来实现网络连通性的检测功能,类似于操作系统内置的`ping`命令。这个程序在DOS环境下运行,用户可以输入目标IP地址或域名,...
在Windows编程环境中,Visual C++(简称VC)是一种强大的开发工具,可以用来创建各种应用程序,包括实现进程间的通信。进程间通信(IPC,Inter-Process Communication)是多进程系统中不同进程之间交换数据的一种...
VC实现简单画图功能, 用VC 实现 examp画图功能
VC实现禁用与启用设备,范例禁用与启用网卡
而"threadpool.rar"可能是另一个线程池的实现版本,"VC实现线程池.txt"很可能是对VC环境下线程池实现的文本说明。 通过学习和分析这些文件,我们可以更深入地理解线程池的原理,以及如何在VC环境中有效地利用线程池...
本项目"VC实现数字水印"提供了使用Visual C++(简称VC)编程语言实现数字水印的源代码,这对于学习和理解数字水印技术非常有价值。 首先,我们要理解数字水印的基本原理。数字水印通常分为可见水印和不可见水印两种...
vc实现自动关机,修正了bug,很好用vc实现自动关机,修正了bug,很好用
**VC实现简单的DDE进程间通讯** 在计算机编程中,进程间通信(IPC,Inter-Process Communication)是一种技术,使得不同进程之间可以共享数据、协调工作。DDE(Dynamic Data Exchange)是微软在Windows操作系统中...
VC实现HTTPGetPost源码,实现包的获取与post相关,可以学习
VC实现了一个功能简单的HTTP代理服务器
vc实现qq聊天-包含服务器和客户端,易于扩充和改动。
总之,利用VC实现远程CMD功能是一项技术含量较高的工作,它涵盖了网络编程、进程管理、输入/输出重定向等多个方面。通过这个过程,不仅可以提升C++编程能力,还能深入理解Windows系统的工作机制。
在“VC实现标题栏添加按钮”的项目中,我们看到的文件主要是MFC应用程序的源代码文件。以下是对这些文件的简要说明: 1. TitleButtonTest2.aps:这是MFC工程的资源文件,包含了程序的资源信息,如对话框、图标、...
《图像处理小波算法的VC实现》 在计算机科学领域,图像处理是一项至关重要的技术,广泛应用于医学诊断、遥感图像分析、视频压缩等领域。小波算法作为一种强大的数学工具,已经在图像处理中展现出其优越性。它能对...