使用状态栏工具栏
画图标。画了一个,第二个会出来。
2.头文件添加成员
CToolBar m_ToolBar; CStatusBar m_StatusBar;
3.初始化
// 创建工具栏
m_ToolBar.Create(this);
m_ToolBar.LoadToolBar(IDR_TOOLBAR1);
// 创建状态栏
m_StatusBar.Create(this);
UINT nIds[3] = { 1,2,3 };
m_StatusBar.SetIndicators(nIds, 3);
// 设置每一栏的信息和文字
m_StatusBar.SetPaneInfo(0, 1, SBPS_STRETCH, 100);
m_StatusBar.SetPaneInfo(1, 2, SBPS_STRETCH, 100);
m_StatusBar.SetPaneInfo(2, 3, SBPS_STRETCH, 100);
// 显示状态栏和工具栏
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
// 设置定时器用于更新状态栏
SetTimer(0x100, 1000, NULL);
4.Ctrl+Shift+X召唤类向导-消息-搜索TIMER。编辑代码
void CDefaultDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (0x100 == nIDEvent)
{
CString TempString;
// 获取系统时间
SYSTEMTIME SystemTime = { 0 };
GetSystemTime(&SystemTime);
// 格式化之后输出到每一栏
TempString.Format(L"时间: %d 时 %d 分 %d 秒", SystemTime.wHour,
SystemTime.wMinute, SystemTime.wSecond);
m_StatusBar.SetPaneText(0, TempString);
TempString.Format(L"日期: %d 月 %d 日", SystemTime.wMonth,
SystemTime.wDay);
m_StatusBar.SetPaneText(1, TempString);
TempString.Format(L"年份: %d 年", SystemTime.wYear);
m_StatusBar.SetPaneText(2, TempString);
}
CDialogEx::OnTimer(nIDEvent);
}
5.响应按钮
BEGIN_MESSAGE_MAP(CMFC8Dlg, CDialogEx)
ON_COMMAND_RANGE(ID_BUTTON32771, ID_BUTTON32774, OnToolIndex)
END_MESSAGE_MAP()
// 工具栏的响应方式和按钮相同
VOID CDefaultDlg::OnToolIndex(UINT nId)
{
// 获取是第几个
int index = nId - ID_BUTTON32771;
// 转换成字符串
CString Text;
Text.Format(L"%d", index);
// 显示
MessageBox(Text);
}