隐藏或禁止ToolbarWindow32工具条按钮
隐藏或禁止ToolbarWindow32工具条按钮
先发送TB_GETBUTTON消息,目的是取得工具条第N个按钮的Command identifier,然后发送TB_SETSTATE就可以设置按钮的状态了。
应该是发送TB_ENABLEBUTTON消息吧?这个消息比那个TB_SETSTATE好了,但也要先发送TB_GETBUTTON消息取得工具条第N个按钮的Command identifier才行。因为你事先是不知道那个按钮的Command identifier是多少。 先取按钮命令ID是必须的,否则第3个参数你用什么值啊。
查这两个消息,有点不明白:
消息一:
TB_GETBUTTON
wParam = iButton; // 要获得的按钮索引
lParam = (LPTBBUTTON)lpButton; // 接收按钮信息的缓冲区
描述:TB_GETBUTTON消息用来接收给定按钮的信息。
参数:wParam为要获得信息的按钮索引,lParam为一个用来接收按钮信息的TBBUTTON结构的地址。
返回值:成功返回TRUE,否则返回FALSE。
问题:参数:wParam取得TBBUTTON结构的地址在下面这个消息中怎么用?
消息二:
TB_ENABLEBUTTON
wParam = idButton; // 按钮的命令ID
lParam = MAKELONG(fEnable, 0); // 标记 - TRUE为生效,FALSE为失效
描述:TB_ENABLEBUTTON用来使指定的按钮生效或失效。当按钮生效后,它就可以被按下和选中了。
参数:wParam是要生效或失效的按钮的命令ID。如果lParam为TRUE,按钮就生效;如果lParam为FALSE,按钮就失效。
返回值:成功返回TRUE,否则返回FALSE。
问题:参数wParam是要生效或失效的按钮的命令ID,这个参数用的是上面的消息取得的TBBUTTON结构的值吗,我用了这个值后没有作用,而直接用工具条按钮的索引顺序号却可以成功执行,但却对某些程序的工具条无用,比如SendMessageA (工具栏句柄, #TB_ENABLEBUTTON, 指针, 0)对易IDE中的工具条就没用(注:这里的指针为外部进程中分配的指针)