13.2.5 为工具栏添加提示信息
为了使用户使用更加方便,在实现图像工具栏后还需要为工具栏添加提示信息。当把鼠标移动到工具按钮上时,提示信息可以告诉用户这个按钮的用途。为此首先需要在资源视图中插入字符串资源,如图13.14所示。
|
| (点击查看大图)图13.14 添加字符串资源 |
为窗体类重写OnNotify()函数,在这个函数中设置工具栏按钮的提示信息。
- 01 BOOL CComElvesDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
- 02 {
- 03 TOOLTIPTEXT *tip;
- 04 tip=(TOOLTIPTEXT*)lParam; //获取提示信息
- 05 CString Tip; //载入提示信息
- 06 switch(tip-> hdr.code)
- 07 {
- 08 case TTN_NEEDTEXT: //该信息表明要求显示工具栏上的提示
- 09 switch(tip-> hdr.idFrom)
- 10 {
- 11 case IDM_COM_SET: //对应工具栏上串口设置按钮提示信息
- 12 Tip.LoadString(IDS_SET);
- 13 break;
- 14 case IDM_COM_OPEN: //对应工具栏上串口开关按钮提示信息
- 15 if(m_bOpened)
- 16 Tip.LoadString(IDS_CLOSE);
- 17 else
- 18 Tip.LoadString(IDS_OPEN);
- 19 break;
- 20 case IDM_COM_EXIT: //对应工具栏上退出按钮提示信息
- 21 Tip.LoadString(IDS_EXIT);
- 22 break;
- 23 case ID_FILE: //对应工具栏上保存到文件按钮提示信息
- 24 Tip.LoadString(IDS_FILE);
- 25 break;
- 26 case ID_CLEAR: //对应工具栏上清零按钮提示信息
- 27 Tip.LoadString(IDS_CLEAR);
- 28 break;
- 29 }
- 30 strcpy(tip-> szText,(LPCSTR)Tip);
- 31 break;
- 32 }
- 33 Return CDialog::OnNotify(wParam, lParam, pResult);
- 34 }
【代码解析】
第3行定义了一个工具栏信息提示指针变量tip,第4行将指针指向当前发送提示信息工具栏的提示信息。第6行判断当前的请求是否为要求显示工具栏的提示信息,如是则在第9行判断当前发送信息提示的是否是工具栏上的那个按钮,然后在第10~29行根据按钮ID载入将要显示的字符串资源。第30行设置工具栏提示信息。