OpenGL + MFC界面设置优化
来源:互联网 发布:基站数据库下载 编辑:程序博客网 时间:2024/05/19 18:16
一、最大化子窗口并隐藏标题栏:
1.在类视图中打开CChildFrame的类向导,添加OnCreate函数:
(On…什么的函数都是在消息那个标签里,输入后面的单词就能快速查找到了)
键入代码:
int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CMDIChildWnd::OnCreate(lpCreateStruct) == -1) return -1; // 隐藏最大化,最小化,关闭按钮 ModifyStyle(WS_SYSMENU, 0); // 隐藏标题栏 ModifyStyle(WS_CAPTION, 0); // TODO: 在此添加您专用的创建代码 return 0;}
这里注意一下,如果是VS2010以及之前的版本,隐藏按钮的函数要注释掉,否则会编译报错。(在学校机房碰见的问题)
2.将子窗口最大化,并隐藏标题(这个标题显示在主窗口的标题旁,看起来很难看,建议隐藏了)(类向导虚函数里)
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;}
二、修改主窗口的标题:
那当然是修改主窗口的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;}
三、启动程序时自动占满屏幕(我的电脑比较奇怪,这个操作用起来效果不好):
仍然是修改CMainFrame类,在OnCreate函数的return 0前面加上以下代码:
RECT rc; ::GetWindowRect(::GetDesktopWindow(), &rc); this->MoveWindow(&rc);
四、右下角的NUM太丑了,改成显示当前时间好了:
在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);}
然后在窗口创建时启动这个函数,在OnCreate里添加:
SetTimer(1, 10, NULL);
五、去掉多余的顶部菜单:
右键删除掉不想要的菜单就行啦。
六、删除工具栏:(OnCreate函数注释掉下面的代码)
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; /*if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("未能创建工具栏\n"); return -1; // 未能创建 }*/ if (!m_wndStatusBar.Create(this)) { TRACE0("未能创建状态栏\n"); return -1; // 未能创建 } m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT)); // TODO: 如果不需要可停靠工具栏,则删除这三行 /*m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar);*/ return 0;}
七、解决缩放窗口闪烁的问题:
在View类修改消息函数OnEraseBkgnd()
BOOL CMFCTestView::OnEraseBkgnd(CDC* pDC){ // TODO: 在此添加消息处理程序代码和/或调用默认值 return true; // return CView::OnEraseBkgnd(pDC);}
最后的效果是这样的:
阅读全文
0 0
- OpenGL + MFC界面设置优化
- MFC界面设置基础
- opengl在mfc界面绘制英文字符
- 优化emacs 界面显示设置
- OpenGL在MFC中的编程设置
- MFC 视图-OpenGL场景-CDialogBar三个界面保存为图片
- mfc仿360设置界面的实现
- MFC+OpenGL
- MFC 界面
- MFC界面
- opengl优化
- OpenGL优化
- 解析RTSP流后,使用opengl在MFC界面绘制1920*1080P的图像
- MFC中,,设置与按钮相连接的界面(按下按钮,弹出下一个界面)
- 界面优化
- MFC中的OpenGL窗口
- Using OpenGL with MFC
- OpenGL & MFC 相关联接
- PHP通过循环来检测四维数组中的值是否存在数组中
- ScrollView嵌套ListView的问题
- 局域网ARP欺骗实验
- ORACLE中的NULL
- C 逻辑运算符
- OpenGL + MFC界面设置优化
- CSS3新增属性
- 回调函数
- Linux命令--如何选中几行再粘贴到某行
- JAVA架构师面试题,如何成为架构师
- CSS3渐变色利器
- Mapper中<ResultMap>标签的使用
- vue.js的安装部署+cnpm install 安装过程卡住不动----亲测可用
- React入门狂想曲(二)-JSX语法