• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

如何程序运行时把菜单和标题栏给去掉

eastrock 2001-07-26 10:29:10
这要如何做了

刚开始我就要实现这个,这应该是MainFrame::OnCreate中实现吧,这要如何.
...全文
195 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
eastrock 2001-07-26
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
解决了.;
//去掉菜单
cs.hMenu=NULL;

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
//去掉标题栏
LONG dwStyle = ::GetWindowLong(GetSafeHwnd(), GWL_STYLE);
dwStyle &= ~(WS_CAPTION|WS_THICKFRAME |WS_POPUP|WS_OVERLAPPED |WS_MINIMIZEBOX|WS_MAXIMIZEBOX |WS_BORDER );
::SetWindowLong(GetSafeHwnd(), GWL_STYLE, dwStyle);
回复
wmouse 2001-07-26
gz
回复
eastrock 2001-07-26
 回复人:jumbo6(jumbo6) (2001-4-29 10:51:00) 得23分
你该感谢111222提供的这段代码
/*
因为是窗口(MID OR SDI)、、、在Pre...window(cs)里取消CAPTION属性是无效的

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
LONG dwStyle = ::GetWindowLong(GetSafeHwnd(), GWL_STYLE);
dwStyle &= ~(WS_CAPTION¦WS_THICKFRAME ¦WS_POPUP¦WS_OVERLAPPED ¦WS_MINIMIZEBOX¦WS_MAXIMIZEBOX ¦WS_BORDER );
::SetWindowLong(GetSafeHwnd(), GWL_STYLE, dwStyle);
*/

用这个代码时,会出错: dwStyle &= ~(WS_CAPTION¦WS_THICKFRAME ¦WS_POPUP¦WS_OVERLAPPED ¦WS_MINIMIZEBOX¦WS_MAXIMIZEBOX ¦WS_BORDER );
就这段代码出错:
'brvbar' : undeclared identifier
syntax error : missing ')' before ';'
'&' : operator has no effect; expected operator with side-effect
....................
不知道要如何解决?????thx
回复
ahphone 2001-07-26
为MFC应用程序添加全屏幕显示功能

在CMainFrame类中添加下列成员变量和成员函数(使用ClassWizard),下面是这些变量和函数的功能说明:

成员变量:
BOOL m_bFullScreen; //全屏幕显示标志
CRect m_FullScreenWindowRect; //全屏幕显示窗口Rect
WINDOWPLACEMENT m_wpPrev; //用于保存正常视图时的窗口位置信息
CToolBar * m_wndFullScreenBar; //全屏幕显示时的浮动工具条

成员函数:
void OnMenuFullscreen(); //全屏幕显示的处理函数
void OnGetMinMaxInfo(); //捕获WM_GETMINMAXINFO消息以便允许你增加窗口大小
void OnUpdateViewFullScreen(); //更新“全屏幕显示”菜单的状态

源码

void CMainFrame::OnMenuFullscreen()
{//全屏幕显示的处理函数
RECT rectDesktop;
WINDOWPLACEMENT wpNew;

if (m_bFullScreen)
{//全屏幕显示模式
//隐藏工具条和状态条
m_wndStatusBar.ShowWindow(SW_HIDE);
m_wndToolBar.ShowWindow(SW_HIDE);

//保存正常视图时的窗口位置信息以便恢复原来状态
GetWindowPlacement (&m_wpPrev);
m_wpPrev.length = sizeof m_wpPrev;

//调整RECT为新的窗口尺寸
::GetWindowRect ( ::GetDesktopWindow(), &rectDesktop );
::AdjustWindowRectEx(&rectDesktop, GetStyle(), TRUE, GetExStyle());

//保存RECT以便OnGetMinMaxInfo()使用
m_FullScreenWindowRect = rectDesktop;

wpNew = m_wpPrev;
wpNew.showCmd = SW_SHOWNORMAL;
wpNew.rcNormalPosition = rectDesktop;

//生成新的工具条
m_wndFullScreenBar=new CToolBar;

if(!m_wndFullScreenBar->Create(this, CBRS_SIZE_DYNAMIC|CBRS_FLOATING)
|| !m_wndFullScreenBar->LoadToolBar(IDR_FULLSCREEN))
{
TRACE0("Failed to create toolbar\n");
return; // fail to create
}

//不允许工具条停泊
m_wndFullScreenBar->EnableDocking(FALSE);
m_wndFullScreenBar->SetWindowPos(0,100,100,0,0,SWP_NOSIZE
|SWP_NOZORDER|SWP_NOACTIVATE|SWP_SHOWWINDOW);
m_wndFullScreenBar->SetWindowText(_T("全屏幕显示"));
FloatControlBar(m_wndFullScreenBar, CPoint(100,100));
m_bFullScreen=TRUE;
}
else
{//正常显示模式
//删除全屏幕工具条
m_wndFullScreenBar->DestroyWindow();
delete m_wndFullScreenBar;

m_bFullScreen=FALSE;

//恢复工具条和状态条
m_wndStatusBar.ShowWindow(SW_SHOWNORMAL);
m_wndToolBar.ShowWindow(SW_SHOWNORMAL);
wpNew = m_wpPrev;
}

//设置窗口显示状态
SetWindowPlacement ( &wpNew );
}

void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
if (m_bFullScreen)
{
lpMMI->ptMaxSize.y = m_FullScreenWindowRect.Height();
lpMMI->ptMaxTrackSize.y = lpMMI->ptMaxSize.y;
lpMMI->ptMaxSize.x = m_FullScreenWindowRect.Width();
lpMMI->ptMaxTrackSize.x = lpMMI->ptMaxSize.x;
}
}

void CMainFrame::OnUpdateMenuFullscreen(CCmdUI* pCmdUI)
{//更新菜单的状态
pCmdUI->Enable();
pCmdUI->SetCheck(m_bFullScreen);
}


回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2001-07-26 10:29
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……