MFC中SDI,视类继承于CFormView引发的相关问题

如图:

问题1:如何去除滚动条:

       我用的方法如下:

                     在CMainFrame.cpp中找到

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT  /*lpcs*/ ,
    CCreateContext
*  pContext)
{
    
return m_wndSplitter.Create(this,
        
22,               // TODO: 调整行数和列数
        CSize(1010),      // TODO: 调整最小窗格大小
        pContext,WS_CHILD|WS_VISIBLE|SPLS_DYNAMIC_SPLIT
        );
}

 

        我们加入了WS_CHILD|WS_VISIBLE|SPLS_DYNAMIC_SPLIT样式, 我们来看看MSDN里关于CSplitterWnd的
Create函数的定义
BOOL Create( CWnd* pParentWnd, int nMaxRows, int nMaxCols, SIZE sizeMin, CCreateContext* pContext, DWORD dwStyle = WS_CHILD | WS_VISIBLE |WS_HSCROLL | WS_VSCROLL | SPLS_DYNAMIC_SPLIT, UINT nID = AFX_IDW_PANE_FIRST );

WS_HSCROLL | WS_VSCROLL 表示横竖的滚动条,很明显,我们的方法就是把这样样式去掉,这样出来的窗口就没有了滚动条了,OK,让我们运行一下...

发现当窗口改变大小时,当主窗口小于view窗口时,滚动条又出现了...于是baidu了一下,我们得到如下方法

在View添加OnSize消息处理,代码如下:

void CSDIFC3DView::OnSize(UINT nType, int cx, int cy)

 CFormView::OnSize(nType, cx, cy);

 // TODO: 在此处添加消息处理程序代码 
 SetScrollSizes(MM_TEXT,CSize(0,0));
}

OK,我们再次运行,看看结果吧:

窗口变得最小了,不能再小了,

怎么办,于是又baidu找到这样的方法:

在CSDIFC3D.cpp(其中SDIFC3D是工程名)找到InitInstance()函数:

 CCommandLineInfo cmdInfo;
 ParseCommandLine(cmdInfo);

下面加入代码

 m_nCmdShow = SW_SHOWMAXIMIZED;//第一次就最大化代码

再次运行,呵呵,只要一运行就最大化了...

这个问题终于解决了...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值