MDI窗体激活的问题

Homo 2008-08-05 12:33:43
我创建了一个MDI子窗体,新建后,工具条无法使用,我也将消息映射到该子窗体中。只有单击一下子窗体,工具条才可以使用,不知道这是什么原因,谢谢!
...全文
92 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnzdgs 2008-08-05
  • 打赏
  • 举报
回复
只有活动窗体才能响应菜单和工具栏命令,你可以改成在主框架类中响应,需要时调用子窗口类的函数或者转发消息。
Homo 2008-08-05
  • 打赏
  • 举报
回复
在子框架中,创建了一个视图
int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CMDIChildWnd::OnCreate(lpCreateStruct) == -1)
return -1;

CRect rect;
GetClientRect(&rect);


m_pcbCamView=new CPcbCAMView;

if(!m_pcbCamView->Create(NULL,NULL,AFX_WS_DEFAULT_VIEW,rect,this,AFX_IDW_PANE_FIRST , NULL))
{
TRACE0("Failed to create view window\n");
return 0;
} //AFX_WS_DEFAULT_VIEW*/

return 0;
}
Homo 2008-08-05
  • 打赏
  • 举报
回复
这是新建代码
m_pMyframe=new CChildFrame;

m_pMyframe->Create(NULL,NULL,WS_CHILD | WS_VISIBLE | WS_MAXIMIZE, rectDefault);
//m_pMyframe->ModifyStyleEx(0,~WS_OVERLAPPEDWINDOW,SWP_NOSIZE);
m_pMyframe->ShowWindow(SW_SHOWMAXIMIZED);
Homo 2008-08-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 5411208 的回复:]

lz太强了!自己手写代码。为什么不用vc6自动生成mdi应用程序呢,应该就不会有错误了。我之前做练习都那么做。

引用 3 楼 cnzdgs 的回复:
只有活动窗体才能响应菜单和工具栏命令,你可以改成在主框架类中响应,需要时调用子窗口类的函数或者转发消息。

[/Quote]

在MDI中不同的视图处理不同的任务,因此就自己手写代码了
5411208 2008-08-05
  • 打赏
  • 举报
回复

lz太强了!自己手写代码。为什么不用vc6自动生成mdi应用程序呢,应该就不会有错误了。我之前做练习都那么做。

[Quote=引用 3 楼 cnzdgs 的回复:]
只有活动窗体才能响应菜单和工具栏命令,你可以改成在主框架类中响应,需要时调用子窗口类的函数或者转发消息。
[/Quote]
Homo 2008-08-05
  • 打赏
  • 举报
回复
新建视图后,我想同时激活工具栏,可是怎么激活呢?
菜牛 2008-08-05
  • 打赏
  • 举报
回复
可以在文档类中响应菜单/工具栏命令。

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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