VC++ MFC 框架中 添加按钮控件

VC++ MFC 框架中 添加按钮控件,第1张

我建议你用窗口拆分,将单文档拆分(Csplitterwnd类)成左右两个部分,其中一部分用用CFormView做为基类,这个类就和对话框差不多,你可以自由的往上边加控件什么的,而且很美观。

具体做法如下:

1.在资源中新建一个对话框然后右键类向导,然后新建一个类,继承自CFormView类,模板选刚才的对话框ID,这样分割窗口的左边就好了。

2.然后在主窗口类中声明成员变量CSplitterWnd s_wnd,然后重载OnCreateClient虚函数,然后在里边用s_wnd对象将其拆分,注意拆分后要注释掉原来的return CFrameWnd::OnCreateClient(lpcs, pContext)直接给返回真就行了。

3关于左右窗口的交互,有很多种,在这里教你一种,就是在左右两个窗口类(CFormView和你本来的View)中声明对方的指针,然后再2步骤中赋值,怎么样得到两个窗口的指针呢??哈哈,在分割时用CreateView时会返回创建View的指针,然后把左窗口的指针赋值给右窗口的成员变量就行了,这样就可以实现左右窗口的交互了。然后你可以在你新建的对话框窗口中拖入一个按钮,然后再CFormView中添加响应就ok了。哈哈,方法就是这样,细节你去查查CSplitterWnd类的使用就可以了,网上很多的。分割窗口后可以近一步美化界面,添加更多的使用功能。哈哈~~~给分吧。 另外一个问题我也回答了,记得给分啊。

要我就重做算了,VIEW类选择不同自动生成的文件的函数等等也大不相同,不是改个什么地方就行的,菜单做好了想重做也很简单啊,可先重建一个工程,选择CFORMVIEW类其他按相应要求生成工程,弄好以后,复制.rc文件内容,具体方法可以在 edit->find in files里面查找ID_FILE_SAVE(其它的ID也行吧,只要是在.rc文件中有定义的都行)下面列出的查找结果里面打开.rc结尾的文件双击->确定就打开了.rc文件,然后打开你原来工程里的.rc文件copy过来,接下来把菜单编辑成你原来工程的样子,如果有响应函数也只是点点鼠标然后复制粘贴的工作了。其实这样的选错基类的事情有过一两次经历以后就不会再犯了,如果你找到更好的方法也贴来看下啊

对话框滚动会影响客户区的任何控件,包括工具栏。

而标准MFC对话框,只能将工具栏放在客户区,因此这个问题没有简单的解决办法,自己在这个基础上去解决问题,非常困难。

比较省事儿的办法,就是重新创建一个工程,做成单文档CFormView模式,这样Form里面的滚动,只影响View客户区内容,不会影响在框架区域的工具条、状态条等东西了。

补充一下,对话框模式还有另外一个办法,就是在控件不多或者需要影响的控件不多的情况下,自己响应滚动条的OnVScroll和OnHScroll事件,自己处理需要滚动的东西。这样的滚动条是伪滚动的,经常用于对话框单一控件响应滚动事件(并将滚动条只放在这一个控件边上)。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11957292.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存