第19章 多文档界面
来源:互联网 发布:android软件开发工具包 编辑:程序博客网 时间:2024/06/07 07:09
在Windows中,多文档界面(MDI)是针对处理文档的应用程序的一套规范。
1、MDI框架里面的文档时没有自己菜单的,主窗口上的菜单会应用于这些子菜单。
2、MDI框架里面的文档只能有一个活动窗口,它会排在其他文档窗口的上面
3、MDI文档窗口最小化后,变成位于工作区底部的一个带图标的小标题栏,最大化后文档窗口的标题栏会小时,文件名将附加在其主窗口标题栏的应用程序名之后,它的系统菜单图标会出现在主窗口顶级菜单的最前面,关闭按钮将出现在主窗口顶级菜单的最右边。
4、MDI程序应该创建一个基于类MDICLIENT的"客户窗口"
CLIENTCREATESTRUCT clientCreate;clientCreate.hWindowMenu = GetMenu(hWnd);clientCreate.idFirstChild = IDN_FIRSTCHILD;hWndClient = CreateWindow(TEXT("MDICLIENT"), NULL, WS_CHILD|WS_CLIPCHILDREN|WS_VISIBLE,0,0,0,0,hWnd,(HMENU)1,hInst,(PTSTR)&clientCreate);
5、CreateMDIWindow,用于在一个独立的执行线程中创建子窗口,基本上该函数很少用到。
6、框架窗口向客户窗口发送WM_MDICREATE的消息来创建子窗口。
MDICREATESTRUCT mdiCreate;mdiCreate.szClass = szHelloClass;mdiCreate.szTitle = TEXT("hello");mdiCreate.hOwner = hInst;mdiCreate.x = CW_USEDEFAULT;mdiCreate.y = CW_USEDEFAULT;mdiCreate.cx = CW_USEDEFAULT;mdiCreate.cy = CW_USEDEFAULT;mdiCreate.style = 0;mdiCreate.lParam = 0;HWND hWndClild = (HWND) SendMessage(hWndClient, WM_MDICREATE, 0, (LPARAM)&mdiCreate);
7、WM_MDIACTIVE,框架发送该消息给客户窗口,客户窗口不仅发送该消息给被激活的子窗口,也会发送给从活动状态进入后台的子窗口,通知他们这个变化
8、两种设置窗口菜单方式:注册窗口类的时候,WNDCLASSEX.lpszMenuName;创建窗口的时候: hWnd = CreateWindow(szFrameClass, szAppName, WS_OVERLAPPEDWINDOW|WS_CLIPCHILDREN,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL,hMenuInit, hInstance, NULL);
8、加载快捷键 LoadAccelerator (在应用程序加载的资源的时候使用),翻译快捷键TranslateAccelerator(在消息循环中使用),翻译MDI程序特殊功能快捷键
9、WM_MDIGETACTIVE :获取活动子窗口
10、子菜单排序设置消息,WM_MDITLE(平铺)、WM_MDICASCADE(层叠)、WM_DMIICONARRANGE(排列图标)
2、MDI框架默认窗口过程DefFramePrcoc,子窗口默认窗口过程DefMdiChildProc。
其中,有好几条消息是必须传递给DefMdiChildProc,而不管子窗口对它们做了什么:WM_CHILDACTIVE、WM_GETMINMAXINFO、WM_MENUCHAR、WM_MOVE、WM_SETFOCUS、WM_SIZE、WM_SYSCOMMAND
3、在MDI应用程序中,不要用SetMenu函数改变菜单。
4、菜单清理:Windows会在菜单所依属的窗口被销毁时销毁菜单,但是不依属于某一个窗口的菜单需要被显示销毁 DestroyMenu.
- 第19章 多文档界面
- 第 19 章 多文档界面
- 第十章 多文档界面
- 第六章 多文档界面
- 多文档界面(MDI)
- 5-多文档界面应用程序
- 创建多文档界面.doc
- 如何设计多文档界面
- VC++60 第十五章 多文档界面的程序
- 第03章 界面布局
- C#中的多文档界面与多窗体界面
- MFC框架界面开发(三):多文档界面
- .NET中多文档界面排版
- 6.8 创建多文档的界面
- Win32教程32-多文档界面(MDI)
- C# 多文档界面的实现
- 简单说几句vs2008多文档界面建立
- C#的多文档界面(MDI)
- 模板:匈牙利算法
- string转byte
- threadid=1: thread exiting with uncaught exception (group=0x416298c8)
- 第15章 友元、异常和其他
- Data Integration - Kettle6.0 在Windows下启动报错
- 第19章 多文档界面
- 如何关闭jetty服务
- 一个strcpy的段错误
- Swift类和结构体(Classes and Structures)
- POJ1061 青蛙的约会 数论
- servlet的相关部署
- 属性设置和读取
- django.session-middleware
- MFC 常规DLL导出和使用