本人是上海同济大学软件学院的一个学生,在做一个期末项目的时候希望能够模拟“最小化”的一个动画效果,所以需要获得程序的任务栏按钮位置。但是从网上搜索的结果出乎意料的沮丧,好像真的没有一篇文章给出了完整的答案。所以今天努力了一下,给出一个正确的方法,代码直接就贴下面了用于交流。
由于按钮不是窗口,所以除非微软提供函数接口,否则我们无法得知任务栏是如何绘制的。
//头文件:
#include"Commctrl.h"
从网上看到,对一个TabButton(任务栏)可以发送以下消息(前题是有上述头文件)
TB_GETBUTTONTEXT
TB_GETBUTTONINFO
TB_BUTTONCOUNT
等等,但是http://topic.csdn.net/t/20030423/13/1697563.html这个文章只介绍了TB_BUTTONCOUNT,原因是什么呢?大家可以自己试一下,对着一个找到的任务栏窗口发送TB_GETBUTTONINFO有什么结果,我的结果是报了一个系统错误(从后面可以知道,是访问了一块没有被开辟的内存),然后任务栏重启(句柄被修改了,说明是重启过了)。
那么仔细看msdn
TB_GETRECT wParam = (W