windows sdk编程系列文章23 ---- 工具提示控件

windows sdk编程系列文章23 ---- 工具提示控件

ID:41037373

大小:65.50 KB

页数:10页

时间:2019-08-14

windows sdk编程系列文章23 ---- 工具提示控件_第1页
windows sdk编程系列文章23 ---- 工具提示控件_第2页
windows sdk编程系列文章23 ---- 工具提示控件_第3页
windows sdk编程系列文章23 ---- 工具提示控件_第4页
windows sdk编程系列文章23 ---- 工具提示控件_第5页
资源描述:

《windows sdk编程系列文章23 ---- 工具提示控件》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、windowssdk编程系列文章----工具提示控件2008-04-2423:21我们将学习工具提示控件:它是什么如何创建和使用.理论:工具提示是当鼠标在某特定区域上停留时显示的一个矩形窗口.工具提示窗口包含一些编程者想要显示的文本.在这点上,工具提示同状态栏的作用是一样的,所不同的是工具提示当单击或者远离指定区域的时候就会消逝,你可能熟悉与工具栏相关联的工具提示,那些"提示"是工具栏控件提供的便利.如果你想要在其它窗口、控件中显示工具提示的话,就不得不自己创建他们.既然已经了解了什么是工具提示,就让我们来看看如何创建他们.大致步骤如下:1.用Create

2、WindowEx函数创建工具提示控件.2.定义一个工具提示控件将要监视鼠标移动的区域.3.将区域传递给工具提示控件4.将传递区域的鼠标消息转送给工具提示控件.(这步或许更早,具体依据转播消息的方法)下面我们就来详细的讨论每一步.工具提示控件的创建工具提示控件是一种通用控件.同样,要在源代码某处调用InitCommonControls以便vc能够将你的程序和comctl32.dll连接.用CreateWindowEx创建工具提示控件,典型代码如下:  InitCommonControls();      hwndTool=CreateWindowEx(NUL

3、L,ToolTipsClassName,NULL,TTS_ALWAYSTIP,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,g_hInstance,NULL);注意窗口风格:TIS_ALWAYSTIP指定了工具提示不管包含指定区域的窗口状态如何,当鼠标移过指定区域的时候,工具提示总是显示.简单的说就是,即使窗口处于非激活状态,鼠标移过工具提示指定区域的时候,工具提示也会出现.你不必在CreateWindowEx中包括WS_POPUP和WS_EX_TOOLWINDOW风格,

4、因为工具提示处理过程会自动加上,你也不必指定工具提示窗口的坐标和宽高,控件会依据要显示的文字自动调节.四个参数,均使用CW_USEDEFAULT,其余的参数都不太重要.指定工具工具提示控件创建了但还没有显示,我们想要当鼠标指针在某个区域之上时显示工具提示窗口.现在需要指定这个区域.我们称这样的区域为"工具",“工具”就是工具提示控件监视鼠标指针是否移过的位于窗口客户区的一个方形区域.如果鼠标指针移过"工具",工具提示窗口就显示."工具"可覆盖整个客户区或者仅仅是它的一部分.因此我们把"工具"分成两种类型,一种是作为一个窗口,另一种则是某窗口客户区的一部分.

5、两种各有所用.覆盖整个客户区的"工具"通常用于按钮、编辑控件等,你不必指定焦点域的坐标和大小:它被假定为窗口的整个客户区.仅覆盖窗口客户区一部分的"工具"在你想把窗口客户区分成几个部分但又不想使用子窗口时特别有用,但需要指定左上角的坐标和宽高.使用如下的TOOLINFO结构定义"工具":typedefstructtagTOOLINFO{    UINTcbSize;     UINTuFlags;     HWNDhwnd;     UINT_PTRuId;     RECTrect;     HINSTANCEhinst;     LPTSTRlpszT

6、ext;#if(_WIN32_IE>=0x0300)     LPARAMlParam;#endif}TOOLINFO,NEAR*PTOOLINFO,*LPTOOLINFO;域名说明cbSizeTOOLINFO结构的大小.必须填充,如果这个区域不被正确填充Windows并不会报错,但你会得到不可预料的奇怪结果.uFlags指定焦点域的属性,可以是如下标志的联合:·TTF_IDISHWND"IDishWnd".如果你指定了这个标志,就意味着你要使用覆盖整个客户区的"工具"(上面第一种"工具").如果你使用了这个标志,你必须用你要使用的窗口句柄填充uId成员,

7、如果你不指定这个成员,就意味着你要使用第二种"工具"、客户区窗口的一方形区域.在这种情况下,你就必须以方形区域的大小填充rect成员.·TTF_CENTERTIP通常工具提示窗口显示在鼠标的右下方,如果你指定了这个标志,不管鼠标的位置如何,工具提示总显示在焦点域总的中下方.·TTF_RTLREADING.如果你的程序不是为阿拉伯或者希伯来语系统设计的,你完全可以不理它,它使得提示文本以从右至左的顺序显示,在其它系统中无效.·TTF_SUBCLASS如果你使用了这个标志,工具提示控件将子类化"工具"所在窗口以便截取发送给它的的鼠标消息,这个标志非常有用,否则

8、你将不得不做更多的工作来向工具提示控件转发消息.hWnd包含"工具

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。