荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Second (石开), 信区: Program
标  题: 如 何 在 应 用 程 序 中 不 加 载 菜 单、 工 具 条
发信站: 荔园晨风BBS站 (Wed Jun  6 07:20:35 2001), 转信

在 通 过AppWizard 生 成 的 具 有 窗 口 框 架 结 构 的 应 用 程 序(SDI 和MDI
) 中,MFC 类 库 已 为 我 们 加 载 上 了 菜 单( 包 括 一 个 系 统 菜 单)、 工
 具 条 和 状 态 条。 但 有 时 由 于 特 殊 需 要, 我 们 可 能 希 望 在 自 己
 的 应 用 程 序 中 事 先 不 加 载 菜 单、 工 具 条 和 状 态 条。 这 时 就 需
 要 我 们 手 动 地 删 除 和 修 改 一 些 类 中 的 语 句。
打 开MainFrm.cpp 文 件, 使 用 工 具 条 上 的 函 数 下 拉 列 表 框 找 到OnCr
eate() 函 数。 按 照 下 述 程 序 注 释 掉 创 建 工 具 条 和 状 态 条 部 分 的
 语 句。

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 docka
ble
 m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
 EnableDocking(CBRS_ALIGN_ANY);
 DockControlBar(&m_wndToolBar);
在处结束注释*/
 return 0;
}
在MainFrm.cpp 文 件 中, 使 用 工 具 条 上 的 函 数 下 拉 列 表 框 找 到PreC
reateWindow() 函 数。 参 照 第 三 部 分 中 的 程 序, 加 入 特 定 的 窗 口 框
 架 属 性, 不 妨 把cs.style 设 置 成 如 下 形 式, 即 不 加 载 系 统 菜 单。

// Create a window without min/max buttons,system menu, or sizable border
cs.style =WS_OVERLAPPED | WS_BORDER;
在 主 应 用 程 序, 即 含 有 定 义theApp 全 程 变 量 的.cpp 文 件 中, 使 用
 工 具 条 上 的 函 数 下 拉 列 表 框 找 到InitInstance() 函 数。 在“pDocTem
plate = 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);
//.....此处略去一部分无关语句
}
找 到Visual C++ 编 辑 器 的 工 具 条 上 的 编 译 方 式 下 拉 列 表 框, 选 择
Win32 Release, 生 成Release 版 本 的 应 用 程 序。
---- 至 此, 我 们 就 得 到 了 不 含 菜 单、 工 具 条 和 状 态 条 结 构 的 应
 用 程 序。


--
                            既然热爱生命
                            那么,
                            一切都在意料之中。

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.28.190]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店