实现标题条的显示与隐藏

2016-01-29 11:54 16 1 收藏

实现标题条的显示与隐藏,实现标题条的显示与隐藏

【 tulaoshi.com - C语言心得技巧 】

实现标题条的显示与隐藏
作者:rockieyung

下载本文示例源代码

有时候为了实际的显示面积大一些或其他的一些原因需要对标题条进行隐藏或显示。本文使用一个简单的例子,说明如何在MFC应用程序的框架下来实现它。其中使用API的方法也可用于其他的Windows应用开发环境。

CWnd类提供了一个函数ModifyStyle(),用于改变窗口的风格,原型如下:
BOOL ModifyStyle( DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0 );
其中参数dwRemove为希望去掉的窗口风格,参数dwAdd为希望加上的窗口风格,参数nFlags用于确定窗口的大小与位置。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

以下以一个MFC MDI应用为例说明:(功能和代码为啥不分开,感觉上不能1、2、3排起来)
1. 添加一个菜单项,ID为ID_VIEW_TITLE_BAR,并用类向导为CMainFrame生成消息函数OnViewTitleBar和OnUpdateViewTitleBar。
2. 为CMainFrame添加一个BOOL型的成员变量m_bViewTitleBar,并在构造函数中赋为TRUE
3. 为OnViewTitleBar添加如下实现

void CMainFrame::OnViewTitleBar() {  m_bViewTitleBar = !m_bViewTitleBar;  if (m_bViewTitleBar == FALSE) { // 隐藏TitleBar  ModifyStyle(WS_CAPTION, 0, SWP_FRAMECHANGED);  }   else { // 显示TitleBar  ModifyStyle(0, WS_CAPTION, SWP_FRAMECHANGED);  }}
4.为OnUpdateViewTitleBar添加如下实现
void CMainFrame::OnUpdateViewTitleBar(CCmdUI* pCmdUI) {  pCmdUI->SetCheck(m_bViewTitleBar);}
ModifyStyle在内部实际调用了三个API函数,在OnViewTitleBar也可以使用API来直接实现。
void CMainFrame::OnViewTitleBar() {m_bViewTitleBar = !m_bViewTitleBar;LONG lStyle = ::GetWindowLong(this->m_hWnd, GWL_STYLE);if (m_bViewTitleBar == FALSE) { // 隐藏TitleBar::SetWindowLong(this->m_hWnd, GWL_STYLE, lStyle & ~WS_CAPTION);::SetWindowPos(this->m_hWnd, NULL, 0, 0, 0, 0,SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED);}else { // 显示TitleBar::SetWindowLong(this->m_hWnd, GWL_STYLE, lStyle | WS_CAPTION);::SetWindowPos(this->m_hWnd, NULL, 0, 0, 0, 0,SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED);}
本文源程序在Win2000 SP3 + VC6.0中调试通过。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

来源:http://www.tulaoshi.com/n/20160129/1483793.html

延伸阅读
标签: flash教程
下载Fla源文件(Flash5) 我们现在在很多国外的网站上和movie里常常可以看见鼠标由其它的图形代替的效果,现在我们就分析一下它是如何实现的,其实是很简单的,利用Flash5的强大的对于对象的控制,三下五除二就可轻松搞定^_^。 这里我做了个简单的例子,我们就照着这个源代码来学习吧!大家也可以把这个当作对flash5熟悉的一个练习:...
在Value中的Style.xml中,添加:   代码如下: style name="NoTitle"        item name="android:windowNoTitle"true/item /style 然后在androidManifest.xml中加入:android:theme="@style/NoTitle" 即可实现
1、//隐藏软键盘    ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);       2、//显示软键盘,控件ID可以是EditText,TextView    ((I...
标签: excel
excel2003如何隐藏显示行与列 一、excel2003全部隐藏行与列 全选工作表内的所有单元格后,(可以点左上角行和列的交叉口进行全选)全选后的单元格都变蓝了,(如果不全选,取消隐藏不太好用而且有时你可能会忘记在哪个地方隐藏了行列。)对准蓝色的区域任意一点鼠标右键,取消隐藏行就可以了。也可以全选后 格式 ---行---取消隐藏。 ...
IE控制条的实现 作者:樊文生(合肥) 下载本文源代码 相信各位兄弟对微软公司的IE一定非常的熟悉,由其是其右侧可以显示和隐藏的收藏夹看上去非常的美观,基于这点,我便做了这个关于IE控制条的示例工程,现在将其贴于 www.vckbase.com上,希望能够于大家共享,另外,由于我VC水平有限,所以在该...

经验教程

839

收藏

57
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部