界面设置笔记

最近在较深入研究OpenGL,决定闲余抽一些时间把自己做小绘图系统的经验记录下来,同时也算是一种放松方式吧。

言归正传,我们接着上一个配置好的程序。

PS:下面的修改对应的是ChildFrm.h

一、如果点击黑框的放缩按钮,屏幕会闪烁。这些的话,体验肯定不好。


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

BOOL CStudyView::OnEraseBkgnd(CDC* pDC)
{
    // TODO:  在此添加消息处理程序代码和/或调用默认值
    return true;
    // return CView::OnEraseBkgnd(pDC);
}
二、或者不少人希望绘图界面保持这个样子


解决:
(1)去掉界面的放缩以及关闭的按钮
添加函数OnCreate()

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

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


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

    return 0;
}


(2)将子窗口最大化,并且去掉Study(-Study1)里面被括起来的东西
修改函数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;
}

这样就OK了!

PS:下面的修改对应的是MainFrm.h

三、父窗口上的标题Study是不是很low?

解决:修改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;
}

四、很多软件的初始界面基本上是占满屏幕的

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

//全屏显示
RECT rc;
::GetWindowRect(::GetDesktopWindow(), &rc);
this->MoveWindow(&rc);
五、有没有发现右下角的NUM很low?我们把它设置成时间不行吗?

解决:
(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);
}

界面小笔记先记录到这里,以后可能会不断更新内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值