- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
状态栏,文档视图结构
文档/视图结构与菜单-状态栏
【】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
}
这段代码中采用了SetIndicators来进行状态栏的指示标记,里面的参数indicators则是一个数组,如下:
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
在这个数组中用了分割栏来分割ID_INDICATOR_CAPS,ID_INDICATOR_NUM,和ID_INDICATOR_SCRL。
下面我们想在状态栏上显示一下时间,用如下代码在状态栏中增加了一个显示当前时间的指示器,步骤如下:
在String资源中添加IDS_TIMER 23:59:59的定义, 不要ID_INDICATOR_TIMER,否则不显示时间
在MainFrm.cpp中的indicators数组中添加IDS_TIMER
在MainFrm.cpp中OnCreate()中添加
this-SetTimer(123, 1000, NULL); //每秒更新一次时间栏
在OnTimer()中添加上述更新时间的代码
//设置时间栏
CTime t = CTime::GetCurrentTime();
CString str = t.Format(%H:%M:%S);
int index = m_wndStatusBar.CommandToIndex(IDS_TIMER);
m_wndStatusBar.SetPaneText(index, str);
注意:在CStatusBar中,常用的状态栏操作函数有:
SetIndicators:设置状态条上指示器
CommandToIndex:获取Index
SetPaneText:设置指示器文字
MiniCAD案例
在GDI中,我们曾经用对话框制作了一个MiniCAD,界面如下:
我们让它功能更加丰富一点,将它转入单文档界面,这样就可以利用我们制作的菜单、工具栏和状态栏。
步骤如下:
首先建立一个单文档,默认即可。
我们在原来的菜单上增加一个绘图菜单,界面如下:
详细内容:
菜单项名 热键与加速键(快捷键) 状态栏提示与工具栏图标提示 ID 备注 绘图 (D) 无 无 普通模式 (X)\tCtrl + M 退出绘图模式\n普通模式 ID_DRAW_NONE Checked选项 无 无 无 无 Separator 画线 (L)\tCtrl + L 进入画线模式\n画线 ID_DRAW_LINE 画矩形 (R)\tCtrl + R 进入画矩形模式\n画矩形 ID_DRAW_RECT 画椭圆 (E)\tCtrl + E 进入画椭圆模式\n画椭圆 ID_DRAW_ELLIPSE 无 无 无 无 Separator 选择颜色 (C)... 进入选择颜色对话框\n选择颜色 ID_DRAW_COLOR 再建立工具条,界面如下:
详细内容:
状态栏提示与工具栏图标提示 对应菜单ID 退出绘图模式\n普通模式 ID_DRAW_NONE 进入画线模式\n画线 ID_DRAW_LINE 进入画矩形模式\n画矩形 ID_DRAW_RECT 进入画椭圆模式\n画椭圆 ID_DRAW_ELLIPSE 进入选择颜色对话框\n选择颜色 ID_DRAW_COLOR
这个工具条单独建立,在资源中插入一个新的工具条。
建立状态栏:
在状态栏上我们要除了原有的内容外增加一个描述鼠标坐标的和显示时钟的。首先我们在资源的String中加入IDS_TIMER(23:59:59)和IDS_MOUSEPOS(1024, 768)。
下面我们开始编程:
5.1、MainFrame编程:
5.1.1首先看OnCreate函数,在这个函数中我们要实现新增加的toolbar,代码如下:
//先CreateEx,后LoadToolBar
if (!m_wndToolBar1.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_LEFT
| CBRS_GRIPPER | C
您可能关注的文档
- 牛津高中英语模块八Module8unit2project.ppt
- 牛津高中英语模块3第三单元lost civilizationsreading.pptx
- 牛津高中英语模块五_Unit1_Reading_2.ppt
- 牛津高中英语模块四第三单元语法 被动语态 Microsoft PowerPoint 演示文稿.ppt
- 牛津高中英语高二下学期第二单元重点词汇讲解.doc
- 牛津高中英语模块五_Unit1_Reading_1公开课.pptx
- 牛津高中英语模块五_Unit1_Word_power.ppt
- 牛津高中英语模块四第三单元课文语言点.ppt
- 牛津高中英语模块四第一单元project阅读.ppt
- 牛津高中英语 模块六Unit3 Reading cultural differences.ppt
文档评论(0)