【发布时间】:2021-02-24 01:02:52
【问题描述】:
TPrintDialog 中的 OK 按钮打开时是否可以设置焦点?
【问题讨论】:
-
不是原生的,但您可能可以使用对话框的
OnShow事件手动找到确定按钮并设置焦点。 -
@RemyLebeau 不是从打印机驱动程序中获取的 PrintDialog 吗?类似于从操作系统获取的文件对话框?现在要更改对话框窗口,我正在使用winapi ... list the childs of the dialog window and do stuff(比如放大和停靠OpenGL或VCL窗口,上面有画布以添加预览......)......我认为这样可以获得OK按钮的句柄和直接做任何需要的事情,不涉及计算机视觉……但是,如果您知道更好的方法,我很想学习……因为您显然对此类事情有更好的经验……
-
Bob 另见is ther a way an app can display a message without the use of messagebox API? ...另外我认为应该有办法将windows消息传递给对话框,直接通过
WM_OK之类的东西...我不擅长winapi所以我可能是错的,但在这里快速搜索first hit 这可能就是你所需要的...... -
@Spektre "PrintDialog 不是取自打印机驱动程序吗?" - 没有。这是一个标准的操作系统对话框。
TPrintDialog使用 Win32PrintDlg()函数。 “我认为这样可以获得确定按钮的句柄并直接执行所需的操作” - 完全正确。对话框初始化后,您可以手动检索确定按钮的HWND并设置焦点。 -
@Spektre setup 对话框可以是每个驱动程序,但标准 print 对话框不是。标准对话框可以调用驱动程序对话框让用户设置高级设置。
标签: c++builder vcl setfocus printdialog c++builder-10.4-sydney