CMyView改成CMyScrollView的方法
来源:互联网 发布:电脑桌面设计软件 编辑:程序博客网 时间:2024/05/16 07:53
很多情况下,我们在作Document/view编程的时候,容易忘记把CMyView的父类改为CSrollView,后来想加上对滚动条的支持又十分麻烦。直接把CMyView : public CView改成CMyView : public CView肯定是不行的了,那么到底还要有那些改动呢?
1。view是用来显示Document的,要让view滚动,必须通过计算Document的尺寸来决定显示,所以必须先设定Document的大小(size),也就是必须给CMyDoc类增加一个成员变量来表示:
//******************************************************************//
CMyDoc : public CDocument
{
...
protected:
CSize m_sizeDoc; //定义Document的尺寸
public:
CSize GetDocSize() { return m_sizeDoc; } //取得Document的尺寸
...
//******************************************************************//
//还要初始化m_sizeDoc的值,可以在CMyDoc的构造函数中初始化
CMyDoc::CMyDoc()
{
m_sizeDoc = CSize(800, 900); //设定Document的尺寸为800*900像素
...
}
2。改变CMyView的父类为CScrollView,包括其cpp文件中的
IMPLEMENT_DYNCREATE(CMyView, CScrollView)
BEGIN_MESSAGE_MAP(CMCMyView, CScrollView)
现在我们就可以来设置滚动条了:
由于对滚动条的一些操作是在CSrollView::OnInitialUpdate()中完成的,所以我们在CMyView中重载该函数:
void CMyView::OnInitialUpdate()
{
SetScrollSizes(MM_TEXT, //屏幕映射模式
GetDocument()->m_sizeDoc) //Document的尺寸(现在知道尺寸的作用了吧)
}
3。如果你在view中有一些对坐标的操作,就应该进行相应的设备坐标和逻辑坐标之间的变换,如果仅仅是显示某些固定内容,这样就可以了!
1。view是用来显示Document的,要让view滚动,必须通过计算Document的尺寸来决定显示,所以必须先设定Document的大小(size),也就是必须给CMyDoc类增加一个成员变量来表示:
//******************************************************************//
CMyDoc : public CDocument
{
...
protected:
CSize m_sizeDoc; //定义Document的尺寸
public:
CSize GetDocSize() { return m_sizeDoc; } //取得Document的尺寸
...
//******************************************************************//
//还要初始化m_sizeDoc的值,可以在CMyDoc的构造函数中初始化
CMyDoc::CMyDoc()
{
m_sizeDoc = CSize(800, 900); //设定Document的尺寸为800*900像素
...
}
2。改变CMyView的父类为CScrollView,包括其cpp文件中的
IMPLEMENT_DYNCREATE(CMyView, CScrollView)
BEGIN_MESSAGE_MAP(CMCMyView, CScrollView)
现在我们就可以来设置滚动条了:
由于对滚动条的一些操作是在CSrollView::OnInitialUpdate()中完成的,所以我们在CMyView中重载该函数:
void CMyView::OnInitialUpdate()
{
SetScrollSizes(MM_TEXT, //屏幕映射模式
GetDocument()->m_sizeDoc) //Document的尺寸(现在知道尺寸的作用了吧)
}
3。如果你在view中有一些对坐标的操作,就应该进行相应的设备坐标和逻辑坐标之间的变换,如果仅仅是显示某些固定内容,这样就可以了!
- CMyView改成CMyScrollView的方法
- CMainFrame中获得CMyView对象的指针的方法
- Cocos2d 改成竖屏的方法
- N个for改成while的方法
- 将销售订单中docType改成下拉列表的方法
- eclipse默认编码为Cp1252改成GBK的方法
- Xcode改成不用MainWindow.xib 和 RootViewController.xib 的方法
- FCKeditor上传路径从绝对路径改成相对路径的方法 .
- Xcode改成不用MainWindow.xib 和 RootViewController.xib 的方法
- Redhat6.4未注册 ,yum改成 CentOS6.4 的方法
- Java将递归改成循环的通用方法
- Redhat6.4未注册 ,yum改成 CentOS6.4 的方法
- Java将递归改成循环的通用方法
- vs为什么把void CMyView::OnDraw(CDC* pDC)的第2个参数注释了啊?
- <>改成“”
- input type="file" 显示的中文怎么改成英文的方法
- .net+mssql的应用系统改成.net+access系统方法总结
- [原创]FCKeditor上传路径从绝对路径改成相对路径的方法
- 几个有用的Servlet过滤器
- 如何获取SQL Server数据库里表的占用容量大小(转)
- 如何读取PSD文件(photoshop)的图层......
- 菜鸟学做多语言版程序
- 你需要GMail吗?
- CMyView改成CMyScrollView的方法
- 存储过程、存储函数的加解密
- 边学边译Dive into python,中文版Dive into python,深入Python(一)
- 新来的
- 边学边译Dive into python,中文版Dive into python,深入Python(二)
- 海浪学习软件
- 新建学习娱乐网站 http://www.pnonline.com.cn
- 与ACE第一次亲密接触
- 程序开发的心理研究