日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实现标题条的显示与隐藏

發布時間:2025/3/15 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实现标题条的显示与隐藏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實現標題條的顯示與隱藏
作者:rockieyung


有時候為了實際的顯示面積大一些或其他的一些原因需要對標題條進行隱藏或顯示。本文使用一個簡單的例子,說明如何在MFC應用程序的框架下來實現它。其中使用API的方法也可用于其他的Windows應用開發環境。

CWnd類提供了一個函數ModifyStyle(),用于改變窗口的風格,原型如下:
BOOL ModifyStyle( DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0 );
其中參數dwRemove為希望去掉的窗口風格,參數dwAdd為希望加上的窗口風格,參數nFlags用于確定窗口的大小與位置。

以下以一個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) { // 隱藏TitleBarModifyStyle(WS_CAPTION, 0, SWP_FRAMECHANGED);}else { // 顯示TitleBarModifyStyle(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中調試通過。

總結

以上是生活随笔為你收集整理的实现标题条的显示与隐藏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。