WEB开发网
开发学院软件开发VC MFC教程(13)-- MFC工具条和状态栏(2) 阅读

MFC教程(13)-- MFC工具条和状态栏(2)

 2007-03-18 21:29:40 来源:WEB开发网   
核心提示: OnToolTipText也是一个处理通知消息的例子,其中,MFC教程(13)-- MFC工具条和状态栏(2)(9),通知参数wParam的结构如4.4.4.2节所述,具体如下:typedef struct {NMHDR hdr; //WM_NOTIFY消息要求的头LPTSTR lpszT

OnToolTipText也是一个处理通知消息的例子。其中,通知参数wParam的结构如4.4.4.2节所述,具体如下:

typedef struct {
NMHDR hdr; //WM_NOTIFY消息要求的头
LPTSTR lpszText; //接收工具条按钮对应文本的缓冲区
WCHAR szText[80]; //接收Tooltip显示文本的缓冲区
HINSTANCE hinst; //包含了szText的实例句柄
UINT uflags; //标识了NMHDR的idFrom成员的意义
} TOOLTIPTEXT, FAR *LPTOOLTIPTEXT;

uflags如果等于TTF_IDISHWND,则表示通知消息来自对话框工具条的一个子窗口,而不是包含工具条按钮。

OnToolTipText根据子窗口ID或者工具条按钮对应的ID,得到字符串ID。如前所述,字符串ID由两部分组成,第二部分用于Tooltip显示,分隔符号是“ ”。根据这种格式OnToolTipText分离出Tooltip文本。

得到了Tooltip文本之后,可以有三种方法返回文本信息:把文本信息复制到szText缓冲区;把文本地址复制到lpszText;复制字符串资源的ID到lpszText、复制包含资源的实例句柄到hint。本函数采用了第一种方法。

在得到了返回的Tooltip文本之后,该文本在Tooltip窗口中被显示出来。

其他的OnToolHist等函数的实现不作详细的解释了。下面,讨论CBRS_FLYBY风格的实现。

CBRS_FLYBY风格的实现

CBRS_FLYBY是MFC提供的特征。当鼠标落在工具条按钮(或者对话框工具条的子窗口)上且稳定300ms后,在状态栏显示对应的提示信息。如果选中某个按钮或者子窗口(鼠标左键按下),则在相应命令消息处理之前在状态栏显示有关提示信息,之后(鼠标左键弹起),重新设置状态栏的状态信息。

为了支持这种特征,CControlBar覆盖虚拟函数PreTranslateMessage来处理和CBRS_FLYBY相关的消息,该函数前面已经讨论过,这里解释它如何处理CBRS_FLYBY特征。

上一页  4 5 6 7 8 9 10  下一页

Tags:MFC 教程 MFC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接