多视图与文档的交互
2018-06-17 23:35:08来源:未知 阅读 ()
CREATESTRUCT结构
CREATESTRUCT结构具有如下形式:
typedef struct
tagCREATESTRUCT
{
LPVOID lpCreateParams;
HANDLE hInstance;
HMENU hMenu;
HWND hwndParent;
int cy;
int cx;
int y;
int x;
LONG style;
LPCSTR lpszName;
LPCSTR lpszClass;
DWORD dwExStyle;
}
CREATESTRUCT;
CREATESTRUCT结构定义了传递给应用程序的窗口过程的初始化参数。
成员:
lpCreateParams | 指向将被用于创建窗口的数据的指针。 |
hInstance | 标识了拥有新窗口的模块的模块实例的句柄。 |
hMenu | 标识了要被用于新窗口的菜单。如果是子窗口,则包含整数ID。 |
hwndParent | 标识了拥有新窗口的窗口。如果新窗口是一个顶层窗口,这个参数可以为NULL。 |
cy | 指定了新窗口的高。 |
cx | 指定了新窗口的宽。 |
y | 指定了新窗口的左上角的y轴坐标。如果新窗口是一个子窗口,则坐标是相对于父窗口的;否则坐标是相对于屏幕原点的。 |
x | 指定了新窗口的左上角的x轴坐标。如果新窗口是一个子窗口,则坐标是相对于父窗口的;否则坐标是相对于屏幕原点的。 |
style | 指定了新窗口的风格。 |
lpszName | 指向一个以null结尾的字符串,指定了新窗口的名字。 |
lpszClass | 指向一个以null结尾的字符串,指定了新窗口的Windows类名(一个WNDCLASS结构;更多的信息参见Win32 SDK文档)。 |
dwExStyle | 指定了新窗口的扩展风格。 |
CCreateContext
CCreateContext没有基类。
在主程序创建框架窗口、以及文档相关的视图时,会使用CCreateContext结构。
建立窗口时,此结构中的值用于连接构成文档的组件和文档数据的视图。仅当覆盖了创建过程时才需要使用CCreateContext。
CCreateContext结构包含了指向文档、框架窗口和文档模板的指针,包括了一个CRuntimeClass指针,CRuntimeClass标志了待创建的视图的类型。运行时类信息和当前文档指针用于动态地创建视图。下表列出了CCreateContext的每个成员的用法:
成员 | 用途 |
m_pNewViewClass | 待创建的视图的CRuntimeClass |
m_pCurrentDoc | 将在其上创建视图的文档 |
m_pNewDocTemplate | 待创建的新MDI框架窗口的文档模板 |
m_pLastView | 待创建视图所依据的原始视图,例如在创建分裂窗口的视图或文档的第二个框架窗口时 |
m_pCurrentFrame | 待创建框架窗口所依据的框架窗口,例如在文档上创建第二个框架窗口时 |
当在文档模板上创建一个文档及其相关的组件时,它检查存储在CCreateContext结构中的信息的有效性。例如,不能在一个不存在的文档上建立视图。
注意:
CCreateContext结构中的所有指针都是可选的,在不需要或者未知时可设为NULL。
· | CCreateContext作为创建窗口时的参数,如CWnd::Create、CFrameWnd:Create和CFrameWnd::LoadFrame,CCreateContext指定了新窗口应连接到的地方。对多数窗口来说,整个结构都是可选的,可传递一个NULL指针。 |
· | 对于可覆盖的函数,例如CFrameWnd::OnCreateClient,参数CCreateContext也是可选的。 |
· | 对那些在创建视图时使用的函数来说,必须在调用时提供足够的信息以建立视图。例如,对分裂窗口中的第一个视图,必须提供视图的类信息和当前的文档。 |
一般说来,如果使用了框架的缺省设置,就可以忽略CCreateContext结构。如果想进行一些高级的修改,MFC类库源代码或例子程序(如VIEWEX)可以提供参考。如果记不清参数的使用,框架中提供的断言将有助于发现参数使用的错误。
CreateView
void MoveWindow( int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE );
void MoveWindow( LPCRECT lpRect, BOOL bRepaint = TRUE );
x | 指定了CWnd 的左边的新位置 |
y | 指定了CWnd 的顶部的新位置 |
nWidth | 指定CWnd 的新宽度 |
nHeight | 指定CWnd 的新高度 |
bRepaint | 指定了是否要重画CWnd。如果为TRUE,则CWnd象通常那样在OnPaint消息处理函数中接收到一条WM_PAINT消息。如果这个参数为FALSE,则不会发生任何类型的重画操作。这应用于客户区、非客户区(包括标题条和滚动条)和由于CWnd移动而露出的父窗口的任何部分。当这个参数为FALSE的时候,应用程序必须明确地使CWnd和父窗口中必须重画的部分无效或重画。 |
lpRect | CRect对象或RECT结构,指定了新的大小和位置。 |
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:倒数字三角
- Qt与Js交互通信 2020-05-25
- Qt配置,载入html,Echart, 交互 2020-05-18
- 三、SpringBoot整合Thymeleaf视图 2019-10-09
- VC++ 6.0设计中实现三叉切分窗口与多视图现 2019-06-14
- 41.35.QT-多线程与界面之间交互总结 2019-05-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash