网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
文档与视图的建立和关联
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
视图控件:图象列表控件,列表视图控件,树型视图控件。
图象列表控件和列表视图控件都使用的类:CListCtrl。

树型视图控件使用的类:CTreeCtrl。

具体的控件功能不是本文所讨论的范围。

使用视图控件我们可以不向上面那样要分割窗口,你能够在视图里直接添加视图控件,但是很显然有个缺陷:只有上面三个控件,这样它的使用范围很小,有时很难达到多种视图的混用。

CListCtrl  m_ListView;

CTreeCtrl  m_TreeView;

在你向导生成的视图里定义这两个变量,然后在你需要的地方使用下面的函数:

BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );

const RECT& rect就是它的位置,选择适当的地方就能实现分割条的一些功能。

其实这些方面不是难点,关键在于如何获得它,产生消息映射是最为困难的地方。在这里你就无法使用以前的消息传递方法,首先我们来简单地理解一下消息机制,由于不同的消息是由操作系统的不同部分或是有应用程序来控制的。当鼠标左键在单击时,这个点击区窗口就收到WM_LBUTTONDOWN消息并处理它,通常它产生一个消息发送给它的主窗口(包含它的窗口),报告“我被单击了。”Win32常用控件将WM_NOTIFY通知发送给它的父窗口,作为应答,MFC调用CWnd::OnNotify()方法来处理这些消息,可以为控件的所有者类重载CWnd::OnNotify()方法。

virtual BOOL CWnd::OnNotify( WPARAM wParam, LPARAM lParam, LRESULT* pResult );

l         wParam参数是发送消息的控件ID,如果不来自控件,那么该参数为NULL。

l         LParam是指向通知消息结构(NMHDR)的指针,它包含当前的通知代码和某些其他信息。

l         PResult参数是指向LRESULT变量的指针,如果消息被处理,该变量用于存放结果代码。

BOOL CView::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)

{

   // TODO: Add your specialized code here and/or call the base class

   TV_DISPINFO *tv_dispinfo=(TV_DISPINFO *)lParam;

   if (tv_dispinfo->hdr.code==NM_CLICK)

   {

}

}

这就是一个这种消息机制的简单的例子,你要实现的功能就放在if后的{}里。

八.文档与视图的一种常见出错的处理:

error C2143: syntax error : missing '';'' before ''*''

error C2501: ''CMyViewDoc'' : missing storage-class or type specifiers

error C2501: ''GetDocument'' : missing storage-class or type specifiers

这种错误一般出现在视图的公共变量函数的定义处:

CMyViewDoc* GetDocument();

我刚学VC不久,而且不习惯看英文,所以也不知道它出错的原因在哪里,有谁知道不忘告诉我一声了。

我一般这样处理之后就好了,先在定义前面加“//”,把它屏蔽掉,按F7,再把“//”去掉,按F7,一看没错了,真的很神了。我在怀疑是不是VC++6.0的一个小小的BUG。

九.结束语:

终于在这里和大家说声再见了,上面所写是不算经验的经验,基于有感而发,有感而写,当然错误在所难免的。我真心欢迎大家与我联系。

E-MAIL:passmatlab@etang.com

青草园:http://passmatlab.myetang.com

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号