要自定义消息框,我应该挂钩消息框还是使用CreateWindowEx来创建模仿?

时间:2013-01-29 20:52:29

标签: c++ performance winapi hook

我一直在尝试创建一个带有可更改,可读文本和可自定义按钮的MessageBox,我认为为它做一个钩子可能很容易,但我在MSDN上阅读:

“挂钩往往会降低系统速度,因为它们会增加系统必须为每条消息执行的处理量。您应该只在必要时安装挂钩,并尽快将其删除。”

我想知道当我可以使用CreateWindowEx来模仿MessageBox来做我想做的事时,是否真的值得。钩子真的减慢了多少速度,是值​​得的,还是我应该选择CreateWindowEx呢?

1 个答案:

答案 0 :(得分:2)

根据您的目标系统,您是否考虑过使用从Windows Vista开始提供的新消息框(Task Dialogs)?

这些允许您使用自定义按钮等自定义框的对话框布局,而无需任何挂钩或自定义窗口(如“从头开始创建”)。

否则我可能会使用钩子(你只需要它们来抓住你的盒子,所以你可以在显示盒子之前设置它们,并在你成功后移除它们。)