求助 MDI 视图切换响应

tongzhipeng5699 2012-07-13 08:06:38
直接用VS的向导建一个默认的MDI程序,我只想实现一个东西,就是在不同视图见切换时,可以进行响应(比如弹出一个Messagebox);
我在查到相关的API
1.OnMDIActivate(..);
2.OnActivate(..);
3.OnActivateView(...);

我三个试过了,OnActivateView() 但是这个会不停的响应,不符合我的要求,而且对与MDI来说,视图直接切换时第二个和第三个参数是一样的。

第一个,第二个没法起作用,求指导!
要求和简单,从一个视图切换到另个视图时,弹出一个messagebox来。
如果能用OnMDIActivate的话那更好。
...全文
239 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
牛 魔 王 2012-07-14
  • 打赏
  • 举报
回复
同楼上,MDI每个视图有是在子框架中
xqchang 2012-07-14
  • 打赏
  • 举报
回复
OnMDIActivate不是API,是CChildFrame的WM_MDIACTIVATE消息处理过程。

代码如下:
void CChildFrame::OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd) 
{
CMDIChildWnd::OnMDIActivate(bActivate, pActivateWnd, pDeactivateWnd);

// TODO: Add your message handler code here

if(bActivate)
{
CString szTitle, szText;
pActivateWnd->GetWindowText(szTitle);
szText = "现在激活的窗口是 " + szTitle;
MessageBox(szText, szTitle, MB_OK);
}

}
tongzhipeng5699 2012-07-14
  • 打赏
  • 举报
回复
谢谢啊,不过要加个ON_WM_MDIACTIVATE宏才行,虽然对你而言是简单的不用说的事情,但是对我这个初学者而言是非常头疼的,所以才这么久弄好,不然早就结贴给分了。
[Quote=引用 1 楼 的回复:]
OnMDIActivate不是API,是CChildFrame的WM_MDIACTIVATE消息处理过程。

代码如下:

C/C++ code

void CChildFrame::OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd)
{
CMDIChildWnd::OnMDIAc……
[/Quote]

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧