游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: 没头脑

用过MFC的请进~帮个小忙

[复制链接]

20

主题

94

帖子

103

积分

注册会员

Rank: 2

积分
103
 楼主| 发表于 2007-1-11 14:06:00 | 显示全部楼层

Re: 用过MFC的请进~帮个小忙

哈哈!!好兄弟![em13] [em20]
那现在已经生成好了,在那些地方修改呢?我刚才直接修改了代码,把: public CView改成: public ScrollView,结果别的地方报错了,看不懂之间有什么关联.

21

主题

109

帖子

127

积分

注册会员

Rank: 2

积分
127
发表于 2007-1-12 11:48:00 | 显示全部楼层

Re:用过MFC的请进~帮个小忙

搜到一段,其实我也不太懂。


修改视类的头文件,从而将所有对CView类的引用改名为你所想要的名称。本例中的类由CScrollView派生而来。通常,这个步骤包括对类的改变,视类将由如下方式派生而来:
    class CMyView : public CScrollView

修改视类的实现文件,从而将所有对CView的引用改名为你所想要的名称。这包括将IMPLEMENT_DYNCREATE那一行的语句改为:
    IMPLEMENT_DYNCREATE(CMyView, CScrollView)


将BEGIN_MESSAGE_MAP那一行的语句改为:
    BEGIN_MESSAGE_MAP(CMyView, CScrollView)

并且将其他所有的CView改成CScrollView.

假如你修改的视图是由AppWizard生成的,那么就不需要作更多的修改了。而如果你在创建一个新视图,先在CWinApp::InitInstance()函数中找到对AddDocTemplate()函数的调用。AddDocTemplate()函数的第三个参数是RUNTIME_CLASS(CSomeView),用CMyView来代替CSomeView,就可以将当前视图改为新视图。在MDI应用程序中,你可以增加第二个AddDocTemplate()函数调用来使用多视图类型,将RUNTIME_CLASS(CSomeView)改为RUNTIME_CLASS (CMyView)。

要想获得更多的信息请参阅Q99562中相关文章《Switching Views in a Single Document Interface Program》 。

20

主题

94

帖子

103

积分

注册会员

Rank: 2

积分
103
 楼主| 发表于 2007-1-12 17:07:00 | 显示全部楼层

Re:用过MFC的请进~帮个小忙

谢谢楼上!!真是个热心人!

20

主题

94

帖子

103

积分

注册会员

Rank: 2

积分
103
 楼主| 发表于 2007-1-16 12:19:00 | 显示全部楼层

Re:用过MFC的请进~帮个小忙

修改CView类失败了,我重新写了这个程序
继承了CScrollView类,但是还是没有卷动条效果,是不是还需要写些什么....

13

主题

113

帖子

123

积分

注册会员

Rank: 2

积分
123
QQ
发表于 2007-1-19 01:58:00 | 显示全部楼层

Re:用过MFC的请进~帮个小忙

CScrollView 需要设置窗口大小,视口大小等一系列参数,具体参阅MSDN

另外也可以直接使用CWnd,有指定使用滚动条的style值,然后通过在OnPaint中改变客户区坐标来实现滚动。具体参阅MSDN中的CWnd类
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 06:56

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表