如何优雅的写UI——(2)MFC下基于CFormView的文档视图程序

本文介绍如何使用MFC向导创建单文档(文档/视图结构)程序,并通过示例代码展示了如何去除不必要的功能,如视图标题、凹陷效果、菜单栏以及窗口大小调整等。

 在MFC中可以创建多种类型的窗口程序,如对话框程序、单文档结构程序(非文档/视图结构)、单文档(文档/视图结构)以及多文档视图结构程序等。

在编写一般的小工具时,我们的首选显然是对话框程序,不过基于对话框的程序不支持视图类,有些功能实现起来会麻烦许多。此时我们可以使用CFormView作为基类来创建单文档(非文档/视图结构)和单文档(文档/视图结构)的程序。

一、使用MFC向导创建程序

 

(1)单文档(文档/视图结构)

(2)不需要状态栏和工具栏

(3)使用CFormView作为基类

(4)使用向导创建好的程序窗口

 

二、程序初始化设置

 

在这个由MFC向导创建的程序窗口中有些功能或许是我们不想要的,比如视图标题、视图凹陷效果、菜单栏、鼠标拖动窗口边框调整窗口大小等。

 1. 不显示视图标题、禁止以拖动方式调整窗口大小、禁用菜单栏

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
    if( !CFrameWnd::PreCreateWindow(cs) )
        return FALSE;
    // TODO: 在此处通过修改
    //  CREATESTRUCT cs 来修改窗口类或样式
    cs.style &= ~FWS_ADDTOTITLE;  /* 不显示视图标题 */
    cs.style &= ~WS_THICKFRAME; /* 禁止以拖动方式调整窗口大小 */
    cs.hMenu = NULL;
    return TRUE;
}

 

2. 去除视图凹陷效果

BOOL CTestView::PreCreateWindow(CREATESTRUCT& cs)
{
    // TODO: 在此处通过修改
    //  CREATESTRUCT cs 来修改窗口类或样式
    cs.style &= ~WS_BORDER; /* 去除视图凹陷效果 */

    return CFormView::PreCreateWindow(cs);
}

 

3. 修改程序窗口标题

BOOL CTestApp::InitInstance()
{

    ....

    ....

    ....

    m_pMainWnd->SetWindowText( L"测试程序" ); /* 修改程序窗口标题 */

 

    // 唯一的一个窗口已初始化,因此显示它并对其进行更新
    m_pMainWnd->ShowWindow(SW_SHOW);
    m_pMainWnd->UpdateWindow();
    // 仅当具有后缀时才调用 DragAcceptFiles
    //  在 SDI 应用程序中,这应在 ProcessShellCommand  之后发生
    return TRUE;

}

结果:

 

下一篇我会教大家如何动态创建好看的选项卡

代码:tab.zip

转载于:https://www.cnblogs.com/ye-ming/p/9266330.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值