告诉窗口哪个监视器在上显示对话框

| 我有一个使用多个监视器的程序。该程序在第二个监视器上显示特殊的可视化效果。一方面,程序使用Windows Shell函数将文件发送到回收站。但是,执行此操作时,删除确认对话框会出现在我的可视化文件的顶部。这尤其成问题,因为当鼠标位于第二台显示器上时,我的程序使用鼠标钩捕获所有鼠标输入,因此用户甚至无法单击确认对话框。 是否可以通过某种方式告诉Windows仅在特定的显示器上放置对话框? 我正在使用python,但是如果我必须调用C WinAPI函数,那应该不成问题     
已邀请:
        您使用哪个功能将文件发送到回收站?如果使用SHFileOperation,则可以传递父HWND。可能会使另一个监视器上的WS_EX_TOOLWINDOW窗口不可见。 我希望将该窗口视为父窗口的API相对于该窗口居中,但我还没有尝试过。 根据要定位的Windows版本,以前可以创建“停靠”在屏幕两侧的桌带。这将自动分解到GetMonitorInfo作为rcWork返回的区域中,并应防止对话框重叠此空间。可能存在另一种声明区域处于“正在使用”状态的方式,该方式声明了空间超出限制,但是我不知道该区域,因此它可能不存在... 您可以做的丑陋而粗糙的事情是自己轮询并移动对话框,但是如果这是一种广泛部署或商业化的应用程序,则可能造成弊大于利。     

要回复问题请先登录注册