A1.
Q2.HANDLE和VOID*之间有什么区别和联系?
A2.
Q3.钩子是不是先于所有的窗口处理事件消息?如果有多个程序的钩子都监视同一消息,那个程序的
钩子函数会先调用呢?
A3.
Q4.全局钩子是不是只能唯一写成Dll的方式?
A4.
Q5.回调函数是根据消息回调的吗?如果是,那跟消息映射的函数没有什么区别了?可不可以用
SendMessage主动给回调函数发消息,来控制什么时候回调自定义的回调函数。
A5.
Q6.已经取得某窗口的句柄了,怎么取出这个窗口的图标?
A6.
Q7.ListView里在vsReport显示方式下,每个Item之间能不画成表格的方式显示,类试Excel的显示.
还有如何鼠标选择的时候选择是一行,而不是只选择了最左边的一段。
A7.
问题有点多,呵呵,分不够再加啊谢谢!
9 个解决方案
#1
不好意思最后还有一个
Q8.如何取得托盘里所有的图标到ListItem里,特别是XP下?(我在论坛上找过,但都没有很好方法)
A8.
Q8.如何取得托盘里所有的图标到ListItem里,特别是XP下?(我在论坛上找过,但都没有很好方法)
A8.
#2
对应每个问题,搜索一下以前的贴子。
#3
只知道A7的“还有如何鼠标选择的时候选择是一行,而不是只选择了最左边的一段。”:
在Object Inspector里将RowSelect设为true。
在Object Inspector里将RowSelect设为true。
#4
还有Q7的“ListView里在vsReport显示方式下,每个Item之间能不画成表格的方式显示,类试Excel的显示.”:
在Object Inspector里将GridLines设为true。
在Object Inspector里将GridLines设为true。
#5
A1.
他们都是句柄,有的是应用程序实例的句柄,有的是窗口句柄,有的是字体句柄等等。他们的数据类型可能是一样的,但是为了写程序方便和便于维护,都typedef成了各种不同的样子。
A2.
同A1
A3.
钩子我用的不多,据我所知,它比普通的消息映射要先得到消息。
系统里可能会有很多钩子,调用的顺序是根据创建的顺序排列的。后创建的先调用,形成一个钩子链。所以在写钩子函数时,一般在最后会使用CallNextHookEx函数,将消息传给钩子链中的下一个钩子。
A4.
鼠标钩子和键盘钩子可以不用在dll里,其他的应该是吧,我不是很确定。
A5.
回调函数其实是将一个函数指针传给调用函数,这样调用函数就会通过这个指针来调用你自己的函数,它要求函数的声明要和调用函数要求的一样。这是用c++语法实现的,而消息是windows系统实现的。我没听说过可以给一个函数发消息。不明白为什么将他们相提并论,没看出他们有什么共同点可以让他们实现对方的功能。
A6.
没做过,待查。应该是通过GetClassInfo得到WNDCLASS,然后得到HICON。
A7.
GridLines属性设为true;
RowSelect属性设为true;
A8.
右下角的托盘实际是一个ToolBar,通过发一些ToolBar的消息即可得到它的信息。这些消息都是TB_XXX这样的,具体信息自己去看msdn。
他们都是句柄,有的是应用程序实例的句柄,有的是窗口句柄,有的是字体句柄等等。他们的数据类型可能是一样的,但是为了写程序方便和便于维护,都typedef成了各种不同的样子。
A2.
同A1
A3.
钩子我用的不多,据我所知,它比普通的消息映射要先得到消息。
系统里可能会有很多钩子,调用的顺序是根据创建的顺序排列的。后创建的先调用,形成一个钩子链。所以在写钩子函数时,一般在最后会使用CallNextHookEx函数,将消息传给钩子链中的下一个钩子。
A4.
鼠标钩子和键盘钩子可以不用在dll里,其他的应该是吧,我不是很确定。
A5.
回调函数其实是将一个函数指针传给调用函数,这样调用函数就会通过这个指针来调用你自己的函数,它要求函数的声明要和调用函数要求的一样。这是用c++语法实现的,而消息是windows系统实现的。我没听说过可以给一个函数发消息。不明白为什么将他们相提并论,没看出他们有什么共同点可以让他们实现对方的功能。
A6.
没做过,待查。应该是通过GetClassInfo得到WNDCLASS,然后得到HICON。
A7.
GridLines属性设为true;
RowSelect属性设为true;
A8.
右下角的托盘实际是一个ToolBar,通过发一些ToolBar的消息即可得到它的信息。这些消息都是TB_XXX这样的,具体信息自己去看msdn。
#6
A1、A2,对同一种类型取不同的名字,主要是为了在程序中能清楚的知道各变量的用处。
A3,钩子可以钩很多类型的消息。多个钩子监视同一消息时,后启动的程序先得到消息。
A4,全局钩子必须写成DLL才能被其他程序引入自己的内存空间,有可能也可以使用其他方式,总之要将代码放入其他程序的内存空间就可以了。
A5,这个我不是很清楚,不过应该是这样的。
A6,这个查一下API,应该不难。
A7,GridLines属性可以满足你的要求。
楼主太小气,这么多问题一个帖子问,所以要查帮助的自己去查了。
A3,钩子可以钩很多类型的消息。多个钩子监视同一消息时,后启动的程序先得到消息。
A4,全局钩子必须写成DLL才能被其他程序引入自己的内存空间,有可能也可以使用其他方式,总之要将代码放入其他程序的内存空间就可以了。
A5,这个我不是很清楚,不过应该是这样的。
A6,这个查一下API,应该不难。
A7,GridLines属性可以满足你的要求。
楼主太小气,这么多问题一个帖子问,所以要查帮助的自己去查了。
#7
对于A6,又试了一下,使用
HICON hIcon = (HICON)GetClassLong(hWnd, GCL_HICON);
即可得到icon的句柄。
HICON hIcon = (HICON)GetClassLong(hWnd, GCL_HICON);
即可得到icon的句柄。
#8
多谢各位解答,特别是 Maconel(Maconel) ,对你敬慕之情犹如滔滔江水....省去LONGLONG WORD!
还有一点不明白,
Q5.我的意思是回调函数是通过消息来调需回调的函数,那么我能不能自己发个消息来控制回调函数,什么时候需要回调。比如说EnumWindow()是通过XX消息来回调EnumWindowProc(),我能不能SendMessage(hWnd,XX)来调用EnumWindow()。
Q6.得到了hIcon句柄,怎么取出句柄指向的图标到ListItem里?以及用一个图标代替该句柄指向的图标?
谢谢!
还有一点不明白,
Q5.我的意思是回调函数是通过消息来调需回调的函数,那么我能不能自己发个消息来控制回调函数,什么时候需要回调。比如说EnumWindow()是通过XX消息来回调EnumWindowProc(),我能不能SendMessage(hWnd,XX)来调用EnumWindow()。
Q6.得到了hIcon句柄,怎么取出句柄指向的图标到ListItem里?以及用一个图标代替该句柄指向的图标?
谢谢!
#9
A5.
还没见过EnumWindow可以发消息来调函数的。
如果它会发消息的话,你想自己来发当然也没问题。
A6.
用DrawIcon函数可将icon画到一个dc上。
还没见过EnumWindow可以发消息来调函数的。
如果它会发消息的话,你想自己来发当然也没问题。
A6.
用DrawIcon函数可将icon画到一个dc上。
#1
不好意思最后还有一个
Q8.如何取得托盘里所有的图标到ListItem里,特别是XP下?(我在论坛上找过,但都没有很好方法)
A8.
Q8.如何取得托盘里所有的图标到ListItem里,特别是XP下?(我在论坛上找过,但都没有很好方法)
A8.
#2
对应每个问题,搜索一下以前的贴子。
#3
只知道A7的“还有如何鼠标选择的时候选择是一行,而不是只选择了最左边的一段。”:
在Object Inspector里将RowSelect设为true。
在Object Inspector里将RowSelect设为true。
#4
还有Q7的“ListView里在vsReport显示方式下,每个Item之间能不画成表格的方式显示,类试Excel的显示.”:
在Object Inspector里将GridLines设为true。
在Object Inspector里将GridLines设为true。
#5
A1.
他们都是句柄,有的是应用程序实例的句柄,有的是窗口句柄,有的是字体句柄等等。他们的数据类型可能是一样的,但是为了写程序方便和便于维护,都typedef成了各种不同的样子。
A2.
同A1
A3.
钩子我用的不多,据我所知,它比普通的消息映射要先得到消息。
系统里可能会有很多钩子,调用的顺序是根据创建的顺序排列的。后创建的先调用,形成一个钩子链。所以在写钩子函数时,一般在最后会使用CallNextHookEx函数,将消息传给钩子链中的下一个钩子。
A4.
鼠标钩子和键盘钩子可以不用在dll里,其他的应该是吧,我不是很确定。
A5.
回调函数其实是将一个函数指针传给调用函数,这样调用函数就会通过这个指针来调用你自己的函数,它要求函数的声明要和调用函数要求的一样。这是用c++语法实现的,而消息是windows系统实现的。我没听说过可以给一个函数发消息。不明白为什么将他们相提并论,没看出他们有什么共同点可以让他们实现对方的功能。
A6.
没做过,待查。应该是通过GetClassInfo得到WNDCLASS,然后得到HICON。
A7.
GridLines属性设为true;
RowSelect属性设为true;
A8.
右下角的托盘实际是一个ToolBar,通过发一些ToolBar的消息即可得到它的信息。这些消息都是TB_XXX这样的,具体信息自己去看msdn。
他们都是句柄,有的是应用程序实例的句柄,有的是窗口句柄,有的是字体句柄等等。他们的数据类型可能是一样的,但是为了写程序方便和便于维护,都typedef成了各种不同的样子。
A2.
同A1
A3.
钩子我用的不多,据我所知,它比普通的消息映射要先得到消息。
系统里可能会有很多钩子,调用的顺序是根据创建的顺序排列的。后创建的先调用,形成一个钩子链。所以在写钩子函数时,一般在最后会使用CallNextHookEx函数,将消息传给钩子链中的下一个钩子。
A4.
鼠标钩子和键盘钩子可以不用在dll里,其他的应该是吧,我不是很确定。
A5.
回调函数其实是将一个函数指针传给调用函数,这样调用函数就会通过这个指针来调用你自己的函数,它要求函数的声明要和调用函数要求的一样。这是用c++语法实现的,而消息是windows系统实现的。我没听说过可以给一个函数发消息。不明白为什么将他们相提并论,没看出他们有什么共同点可以让他们实现对方的功能。
A6.
没做过,待查。应该是通过GetClassInfo得到WNDCLASS,然后得到HICON。
A7.
GridLines属性设为true;
RowSelect属性设为true;
A8.
右下角的托盘实际是一个ToolBar,通过发一些ToolBar的消息即可得到它的信息。这些消息都是TB_XXX这样的,具体信息自己去看msdn。
#6
A1、A2,对同一种类型取不同的名字,主要是为了在程序中能清楚的知道各变量的用处。
A3,钩子可以钩很多类型的消息。多个钩子监视同一消息时,后启动的程序先得到消息。
A4,全局钩子必须写成DLL才能被其他程序引入自己的内存空间,有可能也可以使用其他方式,总之要将代码放入其他程序的内存空间就可以了。
A5,这个我不是很清楚,不过应该是这样的。
A6,这个查一下API,应该不难。
A7,GridLines属性可以满足你的要求。
楼主太小气,这么多问题一个帖子问,所以要查帮助的自己去查了。
A3,钩子可以钩很多类型的消息。多个钩子监视同一消息时,后启动的程序先得到消息。
A4,全局钩子必须写成DLL才能被其他程序引入自己的内存空间,有可能也可以使用其他方式,总之要将代码放入其他程序的内存空间就可以了。
A5,这个我不是很清楚,不过应该是这样的。
A6,这个查一下API,应该不难。
A7,GridLines属性可以满足你的要求。
楼主太小气,这么多问题一个帖子问,所以要查帮助的自己去查了。
#7
对于A6,又试了一下,使用
HICON hIcon = (HICON)GetClassLong(hWnd, GCL_HICON);
即可得到icon的句柄。
HICON hIcon = (HICON)GetClassLong(hWnd, GCL_HICON);
即可得到icon的句柄。
#8
多谢各位解答,特别是 Maconel(Maconel) ,对你敬慕之情犹如滔滔江水....省去LONGLONG WORD!
还有一点不明白,
Q5.我的意思是回调函数是通过消息来调需回调的函数,那么我能不能自己发个消息来控制回调函数,什么时候需要回调。比如说EnumWindow()是通过XX消息来回调EnumWindowProc(),我能不能SendMessage(hWnd,XX)来调用EnumWindow()。
Q6.得到了hIcon句柄,怎么取出句柄指向的图标到ListItem里?以及用一个图标代替该句柄指向的图标?
谢谢!
还有一点不明白,
Q5.我的意思是回调函数是通过消息来调需回调的函数,那么我能不能自己发个消息来控制回调函数,什么时候需要回调。比如说EnumWindow()是通过XX消息来回调EnumWindowProc(),我能不能SendMessage(hWnd,XX)来调用EnumWindow()。
Q6.得到了hIcon句柄,怎么取出句柄指向的图标到ListItem里?以及用一个图标代替该句柄指向的图标?
谢谢!
#9
A5.
还没见过EnumWindow可以发消息来调函数的。
如果它会发消息的话,你想自己来发当然也没问题。
A6.
用DrawIcon函数可将icon画到一个dc上。
还没见过EnumWindow可以发消息来调函数的。
如果它会发消息的话,你想自己来发当然也没问题。
A6.
用DrawIcon函数可将icon画到一个dc上。