社区
界面
帖子详情
对话框和控件之间的消息如何控制
du51
2009-01-23 01:29:33
各位大侠你们好..我请教一个简单问题.
我建了一个对话框..里面有一个列表控件.
我想实现,一堆文件 拖放 进列表控件..列表控件显示它们.
我不想整个对话框都可以接受文件..只想列表控件接受文件.
问题出在消息上面..好像,只有控件能接受到消息..而拖放文件的处理函数是对话框的..
我如何才能实现我想要的功能.
刚开始学VC,请不吝赐教!
万分感谢.
...全文
148
6
打赏
收藏
对话框和控件之间的消息如何控制
各位大侠你们好..我请教一个简单问题. 我建了一个对话框..里面有一个列表控件. 我想实现,一堆文件 拖放 进列表控件..列表控件显示它们. 我不想整个对话框都可以接受文件..只想列表控件接受文件. 问题出在消息上面..好像,只有控件能接受到消息..而拖放文件的处理函数是对话框的.. 我如何才能实现我想要的功能. 刚开始学VC,请不吝赐教! 万分感谢.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sanvl
2009-01-23
打赏
举报
回复
OnDropFiles(HDROP hDropInfo)
{
POINT pt;
GetCursorPos(&pt);
CRect rtList;
m_list.GetWindowRect(&rtList);
if(!rtList.PtInRect(pt))//如果放下位置不在列表内
return;
}
du51
2009-01-23
打赏
举报
回复
我自己搞定了..从CListCtrl派生一个类就行了.呵呵..谢谢楼上两位了..
sanvl
2009-01-23
打赏
举报
回复
WS_EX_ACCEPTFILES 接受不到???
fishion
2009-01-23
打赏
举报
回复
同时设置一下列表控件的accept file属性
fishion
2009-01-23
打赏
举报
回复
把文件拖放到一个程序窗口里打开是一种十分普遍的方法。在MFC中可以通过如下方式实现:
1. 在Mainframe里面 响应WM_CREATE消息,也就是OnCreate里面,加入DragAcceptFiles(TRUE),如果是基于对话框的就放到OnPaint里面
2. 在Mainframe里面 添加对WM_DROPFILES消息的响应函数OnDropFiles
3. 在OnDropFiles函数中调用API函数DragQueryFile来检索被拖放文件的名字
具体代码如下:
void CMainFrame::OnDropFiles(HDROP hDropInfo)
{
const int fileCount = DragQueryFile(hDropInfo, (UINT)-1, NULL, 0);
ASSERT(fileCount >= 1);
TCHAR fileName[MAX_PATH] = { 0 };
for (int i = 0; i < fileCount; ++i)
{
DragQueryFile(hDropInfo, i, fileName, MAX_PATH);
//OpenFile(fileName); //使用得到的文件名fileName
}
CFrameWnd::OnDropFiles(hDropInfo); //因为这句,无需使用DragFinish(hDropInfo)释放检索,如果是基于对话框的就用CWnd::OnDropFiles(hDropInfo);
}
自己参考一下吧,再用上其它方法结合一下就可以了
du51
2009-01-23
打赏
举报
回复
首先感谢楼上几位回答的..
可能是我问题说的不清楚..
当一个文件拖到一个可接受文件的窗体上时,,光标是会变化的.
我把对话框设为不可接受文件..而对话框上的列表框是可接受文件的.
我意思是,只有文件拖到列表框时,,才处理这个事件..否则不处理 .
而现在,我接受不到这个消息.
请问如何解决?
先行谢谢了.
对话框
访问
控件
的七种方法
本篇文章将详细解释在MFC中访问
对话框
控件
的七种方法。 1. **通过成员变量访问**:这是最常见和直接的方法。在MFC中,我们可以在
对话框
类的头文件中声明
控件
的成员变量,类型通常为
控件
对应的类,如`CEdit m_...
VC++
对话框
标准
控件
####
对话框
控件
的初始化 为了使
对话框
中的
控件
在显示时具有正确的初始值,需要对其进行初始化。这通常可以通过以下几种方式进行: 1. **构造函数中初始化**:虽然理论上可以在构造函数中初始化
控件
,但实践中应...
对话框
控件
示例
源码会包含如`DoDataExchange()`函数,用于数据验证和
控件
之间
的数据交换,以及`OnInitDialog()`,用于
对话框
初始化时的设置。 学习这个示例,你需要理解以下几个关键点: - 如何在资源编辑器中设计
对话框
布局,...
一套优秀的基于ASP.NET弹出
对话框
popUp
控件
源码及例子代码
3. **示例代码**:资源中应有实际的ASP.NET页面示例,展示如何在网页中使用这个弹出
对话框
控件
。这些示例可能包括按钮点击事件触发
对话框
,以及
对话框
内的表单验证等。 4. **CSS样式**:为了美化
对话框
,开发者可能...
VC
对话框
控件
基本操作2
数据交换是
对话框
控件
与程序
之间
传输信息的过程。如果
控件
需要保存用户输入的数据,可以使用DoDataExchange()函数。在这个函数中,用DDX_Text(pDX, IDC_EDIT1, m_strText);这样的语句将EditBox
控件
的内容与成员变量m...
界面
15,980
社区成员
115,867
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章