新手:怎样才能生成一个没有菜单项的MFC窗口呢?就是一个窗口,没有菜单,没有toolbar

letok 2003-09-15 02:58:05
新手:怎样才能生成一个没有菜单项的MFC窗口呢?就是一个窗口,没有菜单,没有toolbar
...全文
76 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
woaini5994 2003-09-16
  • 打赏
  • 举报
回复
用SDK会更加灵活,
在MainFrame.cpp
将不想要的东西删除吧!!!!
letok 2003-09-16
  • 打赏
  • 举报
回复
可是CFrameWnd里面还应有view和document才好用呀,都要手工打造吗?
搬不搬砖 2003-09-15
  • 打赏
  • 举报
回复
在建新project时可以选择
lostgdi731 2003-09-15
  • 打赏
  • 举报
回复
在wizard 里选dialog base 就是了 。
sdcer777 2003-09-15
  • 打赏
  • 举报
回复
你在用wizard创建的时候就可以指定的!!!那几个step有关于窗口风格的选项
dizzo 2003-09-15
  • 打赏
  • 举报
回复
如果状态栏也不要的话,用对话框应用程序吧,:)
seilfer2000 2003-09-15
  • 打赏
  • 举报
回复
打开MainFrm.cpp文件,使用工具条上的函数下拉列表框 找到OnCreate()函数。按照下述程序注释掉创建工具条和状态条部分的语句。

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
//在此处开始加注释符号
/* if (!m_wndToolBar.Create(this) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}

if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
// TODO: Remove this if you don't want tool tips or a resizeable toolbar
m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle()
| CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
// TODO: Delete these three lines if you don't want the toolbar to be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
在处结束注释*/
return 0;
}
在MainFrm.cpp文件中,使用工具条上的函数下拉列表框 找到PreCreateWindow( )函数。参照第三部分中的程序,加入特 定的窗口框架属性,不妨把cs.style设置成如下形式,即 不加载系统菜单。
//Createa window without min/max buttons,system menu,or sizable border
cs.style=WS_OVERLAPPED|WS_BORDER;

在主应用程序,即含有定义theApp全程变量的.cpp文件 中,使用工具条上的函数下拉列表框找到InitInstance()函 数。在“pDocTemplate=new CSingleDocTemplate”一句中,用NULL替换IDR_MAINFRAME。 如下段程序所示:

BOOL CYourMainApp::InitInstance()
{
//.....此处略去一部分无关语句
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
NULL, //IDR_MAINFRAME,
//用NULL替换IDR_MAINFRAME
RUNTIME_CLASS(CNoBarDoc),
RUNTIME_CLASS(CMainFrame),
// main SDI frame window
RUNTIME_CLASS(CNoBarView));
AddDocTemplate(pDocTemplate);
//.....此处略去一部分无关语句
}

dingzhaofeng 2003-09-15
  • 打赏
  • 举报
回复
mark!
wangfengsdu 2003-09-15
  • 打赏
  • 举报
回复
在 wizard 中可以设置啊,
仔细一步步看。。。
chinaqianhu 2003-09-15
  • 打赏
  • 举报
回复
如果选dialog,生成的程序没有CFrameWnd,如果要输出文字,画图会不方便。

那你先见一个基于对话框的应用,再从CFrameWnd派生一个窗口CMainFrame;
在InitInstance()中

CMainFrame* pMainFrame = new CMainFrame;
m_pMainWnd = pMainFrame;
if (!pMainFrame->Create())//具体设置
return FALSE;
m_pMainWnd->ShowWindow(SW_HIDE);
m_pMainWnd->UpdateWindow();

不就行了;
letok 2003-09-15
  • 打赏
  • 举报
回复
如果选dialog,生成的程序没有CFrameWnd,如果要输出文字,画图会不方便。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧