社区
界面
帖子详情
模式对话框和非模式对话框
qq845284425
2009-05-16 12:44:04
请教
1 模式对话框和非模式对话框都是继承于CDialog,只是创建的方式不同,对不对?
2 对于对话框投递的自定义消息,父窗口必须重载WndProc窗口过程函数才能捕获该消息,对不对呀?
...全文
115
8
打赏
收藏
模式对话框和非模式对话框
请教 1 模式对话框和非模式对话框都是继承于CDialog,只是创建的方式不同,对不对? 2 对于对话框投递的自定义消息,父窗口必须重载WndProc窗口过程函数才能捕获该消息,对不对呀?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
oyljerry
2009-05-16
打赏
举报
回复
1.模态,非模态,主要就是消息循环的处理不同
2.可以自己添加ON_MESSAGE 宏等MFC方式,或者GetMessage处理消息...
rebecca_zjy
2009-05-16
打赏
举报
回复
1、应该对的吧
补充一句,你大概已经知道的:
模式对话框获得焦点以后,它的父对话框是不会获得焦点的,要把它关闭以后父对话框才会获得焦点。非模式的就可以在对话框间转换焦点。
2、好像在子窗口的PreTranslateMessage里传递消息就好了吧,,因为总是父窗口先得到消息的。不知道这样对不对
hurryboylqs
2009-05-16
打赏
举报
回复
不尽对,
1:只要学点SDK编程方式,这个疑问就不会有了,创建时使用的函数不同
除此之外,模态对话框会强制本对话框接收本线程的所有鼠标焦点,所以你弹出模态
对话框之后,直到该对话框销毁你才能操作其他窗口。
2: MFC的话,用消息映射用ON_MESSAGE来响应自定义消息即可,当然你的方法也可
但一般不这样做
biweilun
2009-05-16
打赏
举报
回复
模式和非模式的创建方式不同,消息循环方式也不同。模式的消息由系统默认处理,非模式自己用自己写的的消息循环队列。
2是可以的,一般用重载消息循环实现
LeviZhou
2009-05-16
打赏
举报
回复
貌似子类化也能达到效果
SetWindowLong 也行
山的那边还是山~
2009-05-16
打赏
举报
回复
学习一下。
Jobobo
2009-05-16
打赏
举报
回复
对话框的自定义消息可以指定投向父窗口吧,然后在父窗口直接用消息的响应函数就行了。
在发送消息的时候先找到你要发送消息的窗口,下面这个例子中我是从一个对话框向SDI的View类中发送消息的:
CMainFrame* pMainFrm=(CMainFrame*)AfxGetMainWnd();
CMessageTestView* pView=(CMessageTestView*)pMainFrm->GetActiveView();
pView->PostMessage(WM_MYMESSAGE,NULL,NULL);
其中WM_MYMESSAGE为自定义消息。
在View类的头文件和源文件中分别加入响应函数集映射就可以了。
.h:
//{{AFX_MSG(CMessageTestView)
......
afx_msg void MyMessage();
//}}AFX_MSG
.cpp:
BEGIN_MESSAGE_MAP(CMessageTestView, CView)
......
ON_MESSAGE(WM_MYMESSAGE,MyMessage)
END_MESSAGE_MAP()
void CMessageTestView::MyMessage()
{
......
}
希望对你有用
dong364
2009-05-16
打赏
举报
回复
1. 对于DoModal(), lz你可以跟进去看看, 父窗口已经被disable掉了, mfc是采用了钩子
2. 如果是自定义的msg, 一般用ON_MESSAGE宏, 如果是来自于键盘鼠标的消息, 可用PreTranslateMessage, 用重载WndProc也可
模式
对话框
和
非
模式
对话框
消息响应
列出了
模式
对话框
和
非
模式
对话框
消息响应函数的异同
吕鑫:《VC++就业培训宝典之MFC视频教程》第四章 第一节
模式
对话框
和
非
模式
对话框
2、
对话框
种类分类:
模式
对话框
和
非
模式
对话框
; 3、
对话框
启动参与的消息包括:WM_CREATE和WM_INITDIALOG等; 4、
对话框
启动参与的消息包括:WM_SYSCOMMAND、WM_CLOSE、OnCancel回调函数以及WM_DESTROY等等;
js
模式
窗口(
模式
对话框
和
非
模式
对话框
)的使用介绍
Javascript里面分
模式
对话框
和
非
模式
对话框
,其实两者区别就是在
对话框
被关闭之前用户能否在同一页面的其他地方进行工作。比如“打开文件”
对话框
便是典型的
模式
对话框
,在你对这个
对话框
做出动作才能对打开该
对话框
...
模式
对话框
与
非
模式
对话框
模式
对话框
与
非
模式
对话框
模式
对话框
与
非
模式
对话框
模式
对话框
与
非
模式
对话框
mfc
模式
与
非
模式
对话框
例程
对话框
分为两个类型:
模式
对话框
和
非
模式
对话框
。当
模式
对话框
弹出后,无法操作它的上一级窗口,直到关闭该
对话框
为止;而
非
模式
对话框
弹出后,不影响对它的上一级窗口的操作。
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章