Winapi 是否有任何方法可以通过PrintDlgEx从打印属性页激活应用按钮?
我有自定义打印属性页/页面,它们已添加到PrintDlgEx显示的对话框中。当然,这些属性页用于更改其他选项。问题在于,似乎没有任何文档化的方法从属性页的对话框功能或任何地方激活“应用”按钮。这似乎是微软方面的一个重大疏忽 是否有任何“官方”方法来更改应用按钮的状态?如果没有,是否有任何可能的解决办法 是否有任何“官方”方法来更改应用按钮的状态?如果没有,是否有任何可能的解决办法 不是直接的,不是。您必须手动检索按钮的HWND,然后根据需要对其进行操作Winapi 是否有任何方法可以通过PrintDlgEx从打印属性页激活应用按钮?,winapi,printing,dialog,Winapi,Printing,Dialog,我有自定义打印属性页/页面,它们已添加到PrintDlgEx显示的对话框中。当然,这些属性页用于更改其他选项。问题在于,似乎没有任何文档化的方法从属性页的对话框功能或任何地方激活“应用”按钮。这似乎是微软方面的一个重大疏忽 是否有任何“官方”方法来更改应用按钮的状态?如果没有,是否有任何可能的解决办法 是否有任何“官方”方法来更改应用按钮的状态?如果没有,是否有任何可能的解决办法 不是直接的,不是。您必须手动检索按钮的HWND,然后根据需要对其进行操作 用于为调用PrintDlgEx()的线程安
PrintDlgEx()
的线程安装本地WH\u CBT
钩子。当收到HCBT\u ACTIVATE
通知时,对话框的HWND将作为回调函数的参数提供。然后,您可以在对话框中找到Apply
按钮的HWND(使用Spy++或类似工具获取有关按钮的详细信息,然后让您的代码使用或获取按钮的HWND)。请确保在退出后调用PrintDlgEx()
exits(或者至少在使用按钮HWND后)PrintDlgEx()
的线程注册EVENT\u OBJECT\u CREATE
、EVENT\u OBJECT\u SHOW
、和/或EVENT\u SYSTEM\u DIALOGSTART
通知。对话框和按钮HWNDs将作为回调函数的参数提供。请确保在退出后调用PrintDlgEx()
exits(或者至少在使用按钮HWND后)如果有人需要,我可以编写一些代码。是的,我也在考虑类似的东西,但我的想法没有那么好。谢谢这很好!我去年完成了这个项目,但当时我没有注意到MSDN上属性表参考页中的宏。