预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

windowssdk编程系列文章----工具提示控件 2008-04-2423:21 我们将学习工具提示控件:它是什么如何创建和使用. 理论: 工具提示是当鼠标在某特定区域上停留时显示的一个矩形窗口.工具提示窗口包含一些编程者想要显示的文本.在这点上,工具提示同状态栏的作用是一样的,所不同的是工具提示当单击或者远离指定区域的时候就会消逝,你可能熟悉与工具栏相关联的工具提示,那些"提示"是工具栏控件提供的便利.如果你想要在其它窗口、控件中显示工具提示的话,就不得不自己创建他们. 既然已经了解了什么是工具提示,就让我们来看看如何创建他们.大致步骤如下: 用CreateWindowEx函数创建工具提示控件. 定义一个工具提示控件将要监视鼠标移动的区域. 将区域传递给工具提示控件 将传递区域的鼠标消息转送给工具提示控件.(这步或许更早,具体依据转播消息的方法) 下面我们就来详细的讨论每一步. 工具提示控件的创建 工具提示控件是一种通用控件.同样,要在源代码某处调用InitCommonControls以便vc能够将你的程序和comctl32.dll连接.用CreateWindowEx创建工具提示控件,典型代码如下: InitCommonControls(); hwndTool=CreateWindowEx(NULL,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风格,因为工具提示处理过程会自动加上,你也不必指定工具提示窗口的坐标和宽高,控件会依据要显示的文字自动调节.四个参数,均使用CW_USEDEFAULT,其余的参数都不太重要. 指定工具 工具提示控件创建了但还没有显示,我们想要当鼠标指针在某个区域之上时显示工具提示窗口.现在需要指定这个区域.我们称这样的区域为"工具",“工具”就是工具提示控件监视鼠标指针是否移过的位于窗口客户区的一个方形区域.如果鼠标指针移过"工具",工具提示窗口就显示."工具"可覆盖整个客户区或者仅仅是它的一部分.因此我们把"工具"分成两种类型,一种是作为一个窗口,另一种则是某窗口客户区的一部分.两种各有所用.覆盖整个客户区的"工具"通常用于按钮、编辑控件等,你不必指定焦点域的坐标和大小:它被假定为窗口的整个客户区.仅覆盖窗口客户区一部分的"工具"在你想把窗口客户区分成几个部分但又不想使用子窗口时特别有用,但需要指定左上角的坐标和宽高. 使用如下的TOOLINFO结构定义"工具": typedefstructtagTOOLINFO { UINTcbSize; UINTuFlags; HWNDhwnd; UINT_PTRuId; RECTrect; HINSTANCEhinst; LPTSTRlpszText; #if(_WIN32_IE>=0x0300) LPARAMlParam; #endif }TOOLINFO,NEAR*PTOOLINFO,*LPTOOLINFO; 域名 说明 cbSize TOOLINFO结构的大小.必须填充,如果这个区域不被正确填充Windows并不会报错,但你会得到不可预料的奇怪结果. uFlags 指定焦点域的属性,可以是如下标志的联合: TTF_IDISHWND"IDishWnd".如果你指定了这个标志,就意味着你要使用覆盖整个客户区的"工具"(上面第一种"工具").如果你使用了这个标志,你必须用你要使用的窗口句柄填充uId成员,如果你不指定这个成员,就意味着你要使用第二种"工具"、客户区窗口的一方形区域.在这种情况下,你就必须以方形区域的大小填充rect成员. TTF_CENTERTIP通常工具提示窗口显示在鼠标的右下方,如果你指定了这个标志,不管鼠标的位置如何,工具提示总显示在焦点域总的中下方. TTF_RTLREADING.如果你的程序不是为阿拉伯或者希伯来语系统设计的,你完全可以不理它,它使得提示文本以从右至左的顺序显示,在其它系统中无效. TTF_SUBCLASS如果你使用了这个标志,工具提示控件将子类化"工具"所在窗口以便截取发送给它的的鼠标消息,这个标志非常有用,否则你将不得不做更多的工作来向工具提示控件转发消息. hWnd 包含"工具"的窗口句柄,如果你指定了TT