计算机图形学-MFC图形界面优化

首先修改ChildFrm即子窗口

一、擦除背景

在View类添加函数OnEraseBkgnd()
我们设置每次都默认擦除背景。

bool CStudy01View::OnEraseBkgnd()
{
    return true;
    // return CView::OnEraseBkgnd(pDC);
}

二、去掉界面的放缩即关闭按钮

在ChildFrame类中添加OnCreat()函数

计算机图形学-MFC图形界面优化_第1张图片

计算机图形学-MFC图形界面优化_第2张图片

复制代码
int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if (CMDIChildWnd::OnCreate(lpCreateStruct) == -1)
        return -1;

    // TODO:  在此添加您专用的创建代码

    // 隐藏最大化,最小化,关闭按钮  
    ModifyStyle(WS_SYSMENU, 0);


    // 隐藏标题栏  
    ModifyStyle(WS_CAPTION, 0);
    // TODO:  在此添加您专用的创建代码
    return 0;
}
复制代码

 

(2)将子窗口最大化

修改函数PreCreateWindow()

复制代码
BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
    // TODO:  在此处通过修改 CREATESTRUCT cs 来修改窗口类或样式
    if( !CMDIChildWnd::PreCreateWindow(cs) )
        return FALSE;
    cs.style &= ~FWS_ADDTOTITLE | WS_VISIBLE | WS_MAXIMIZE;//取消窗口上的文档标题
    cs.style |= WS_VISIBLE | WS_MAXIMIZE; // 最大化
    return TRUE;
}
复制代码

修改后的效果,是不是漂亮很多呢

计算机图形学-MFC图形界面优化_第3张图片

下面对MainFrm修改,即主窗口

(1)修改标题

修改PreCreateWindow()函数

复制代码

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CMDIFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式
cs.style &= ~FWS_ADDTOTITLE | WS_VISIBLE | WS_MAXIMIZE;//取消窗口上的文档标题
cs.lpszName = _T("绘图系统"); // 文件上方标题重命名
return TRUE;
}

复制代码

 

 计算机图形学-MFC图形界面优化_第4张图片

 

 (2)占满屏幕

在OnCreate()函数return 0; 前面添加

//全屏显示
    RECT rc;
    ::GetWindowRect(::GetDesktopWindow(), &rc);
    this->MoveWindow(&rc);

(3)右下角时间设置

1>在OnCreate()函数添加

SetTimer(1, 10, NULL);

2>在CMainFrame类添加函数Timer() (利用类向导->消息)

复制代码
void CMainFrame::OnTimer(UINT_PTR nIDEvent)
{
    // TODO:  在此添加消息处理程序代码和/或调用默认值
    CTime t = CTime::GetCurrentTime();
    CString str = t.Format("当前时间 %H:%M:%S");

    CClientDC dc(this);
    CSize sz = dc.GetTextExtent(str);
    int index = 0;
    index = m_wndStatusBar.CommandToIndex(ID_INDICATOR_NUM);
    m_wndStatusBar.SetPaneInfo(index, ID_INDICATOR_NUM, SBPS_NORMAL, sz.cx);
    m_wndStatusBar.SetPaneText(index, str);
    
    CMDIFrameWnd::OnTimer(nIDEvent);
}
复制代码

 

你可能感兴趣的:(计算机图形学,MFC)