社区
界面
帖子详情
对话框和控件之间的消息如何控制
du51
2009-01-23 01:29:33
各位大侠你们好..我请教一个简单问题.
我建了一个对话框..里面有一个列表控件.
我想实现,一堆文件 拖放 进列表控件..列表控件显示它们.
我不想整个对话框都可以接受文件..只想列表控件接受文件.
问题出在消息上面..好像,只有控件能接受到消息..而拖放文件的处理函数是对话框的..
我如何才能实现我想要的功能.
刚开始学VC,请不吝赐教!
万分感谢.
...全文
190
6
打赏
收藏
对话框和控件之间的消息如何控制
各位大侠你们好..我请教一个简单问题. 我建了一个对话框..里面有一个列表控件. 我想实现,一堆文件 拖放 进列表控件..列表控件显示它们. 我不想整个对话框都可以接受文件..只想列表控件接受文件. 问题出在消息上面..好像,只有控件能接受到消息..而拖放文件的处理函数是对话框的.. 我如何才能实现我想要的功能. 刚开始学VC,请不吝赐教! 万分感谢.
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用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
打赏
举报
回复
首先感谢楼上几位回答的..
可能是我问题说的不清楚..
当一个文件拖到一个可接受文件的窗体上时,,光标是会变化的.
我把对话框设为不可接受文件..而对话框上的列表框是可接受文件的.
我意思是,只有文件拖到列表框时,,才处理这个事件..否则不处理 .
而现在,我接受不到这个消息.
请问如何解决?
先行谢谢了.
对话框
与子
控件
的
消息
处理
对话框
与子
控件
的
消息
处理
对话框
的子
控件
通过向父窗口发送通知
消息
来说明发生了某一事件,在
对话框
中为发送的
消息
添加
消息
处理数,通过在
消息
处理函数中编写
消息
处理代码可以更好地实现对程序的
控制
。 一:编写
对话框
消息
处理函数 通过类向导可以方便地为
对话框
添加
消息
映射和
消息
处理函数。以处理
对话框
鼠标左键按下
消息
为例来说明如何编写
对话框
消息
处理函数。 步骤如下: 1:点击文件——>x新建——>项目——>MFC应用 如图: 下一步 创建 下一步——>下一步——>下一步(把所有选项都去掉
MFC子线程访问主线程
对话框
程序的
控件
对象
最近在使用 VC 开发软件时需要用到多线程同步来解决开发过程中遇到的问题。本来以为只要象
控制
台程序一样,在主线程创建子线程,并设置好相应的对象事件就能解决问题,但是等到真正做起来,才在实践中发现原来事情并没有我想象的那么简单。以下我介绍一下我在开发过程中遇到的问题。 我的
对话框
程序是这样设计的,我把大部分需要用到的子
控件
都在主线程的
对话框
先设计好,然后,由于我需要实时监控软件的运
ATL/WTL
对话框
和
控件
选择自 titilima 的 Blog第四章
对话框
和
控件
对于Win32 GUI的程序设计来说,其实大部分的情况下我们都不需要自己进行窗口类的设计,而是可以使用Win32中与用户交互的标准方式——
对话框
(Dialog Box)。我们可以在VC IDE的资源设计器中设计
对话框
资源,并在其上放置各种
控件
资源——的确是非常方便。在本章里,李马将要向诸位介绍如何利用ATL来操作
对话框
,以及如何
如何使MFC
对话框
上的
控件
可以拖动
有人问我,怎么才能使
对话框
上的
控件
可以通过鼠标来拖动. 他的方法是: 1) 从标准
控件
类派生新的类. 2) 处理
控件
的鼠标
消息
来实现拖动效果. 这样做当然可以实现,但似乎不太符合常规, 且需要对需要可拖动的所有
控件
进行子类化以便能响 应
控件
的鼠标
消息
. 在这里, 我写了一个类,专门用来处理对
控件
的拖动, 使用该类只需要少许修 改包含需要拖动的
控件
的
对话框
,而不需要对
控件
再做任
深入理解MFC
对话框
与
控件
的源代码实践
创建自定义
对话框
类的基本步骤如下:定义类:首先,在项目中定义一个新的C++类,并使其继承自CDialog类。添加
控件
:使用资源编辑器或代码添加所需的
控件
,并为每个
控件
设置合适的ID。实现
消息
处理函数:为
对话框
中的
控件
编写
消息
处理函数。这通常通过在类中重载虚函数或者处理
消息
映射宏来完成。初始化
对话框
:实现OnInitDialog()函数来执行
对话框
初始化时需要的操作,如设置
控件
的初始值。数据交换与验证。
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章