MFC_2.8 使用状态栏工具栏

使用状态栏工具栏

1.资源-添加-TOOLBAR

画图标。画了一个,第二个会出来。

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);
}

 

猜你喜欢

转载自www.cnblogs.com/ltyandy/p/10928350.html
今日推荐