隐藏自定义应用程序窗口,但应在任务栏上显示应用程序图标(不是作为托盘图标)
Hide the custom applicaion window but it should show the application icon on the taskbar(not as a tray icon)
我需要创建一个示例Windows应用程序,其中应隐藏该应用程序,但是应用程序图标应在任务栏上(不是作为托盘图标)这个怎么做?还是可以这样做?当我使用ShowWindow(HWND,SW_HIDE)时,该应用程序被隐藏但在任务栏上看不到。所以我不能使用这个。我不想将其添加到Trayicon。请帮我做这个
当我使用ShowWindow(hwnd,sw_hide)时,该应用程序被隐藏但在任务栏上没有看到。所以我无法使用。
当您隐藏/显示窗口时,它也相应地隐藏/显示其任务栏按钮。任务栏上的窗口控制其任务栏按钮的可见性,以匹配其自身的可见性。没有选择防止这种行为。
要做您要问的事情,您将需要:
-
使用
SW_MINIMIZE
代替SW_HIDE
,然后将您的窗口丢弃任何WM_SYSCOMMAND
消息,将其wParam
设置为SC_RESTORE
或SC_MAXIMIZE
。 -
创建一个单独的窗口以管理任务栏按钮。不要隐藏该窗口,但是您可以使用0x0尺寸创建它,也可以在屏幕外移动。只需知道,用户在任务栏按钮上执行的任何活动都会反映在此单独的窗口上,因此您必须根据需要将任何用户操作委托给真实窗口。此外,要支持Taskbar和Alt-Tab/Flip3D对话框上的实时预览之类的内容,您将必须处理
。WM_DWMSENDICONICLIVEPREVIEWBITMAP
和WM_DWMSENDICONICTHUMBNAIL
消息,并在要求时将您的真实窗口渲染到内存中BMP。
说,这两种方法都是错误的解决方案。
说这是客户端服务器方案。我不想在客户端上显示一些窗口。但是,任务栏上应该有一个图标,以了解客户端正在运行某些应用程序
您不应该使用任务栏只是为了向用户展示应用程序在没有可见窗口的情况下运行。这不是任务栏的目的。而是使用通知区域(通常称为"系统托盘")。这正是通知区域用于的场景。
我不想将其添加到Trayicon。
不管您想要什么,这就是您应该做的。这就是Microsoft期望您做的,以及用户也将期望的。
您可以在应用程序运行时在通知区域显示状态图标,如果用户需要更多详细信息,则在用户单击和/或悬停在图标上时应显示窗口。
我不想混淆用户。
然后不要做用户没有想到的事情。自任务栏首次在Windows 95中引入以来,用户就已经习惯于仅在任务栏上看到可见的窗口,以及系统托盘中的状态图标。不要打破期望。并且不要违反Microsoft建立的UI指南。
-
遵循用户界面指南
-
taskbar
通常在没有桌面的情况下运行的程序应该使用其通知区域图标,即使它可能并不总是可见。
-
通知区域
通知区域是任务栏的一部分,它为通知和状态提供了临时来源。它也可以用于显示桌面上没有存在的系统和程序功能的图标。
:: movewindow(hwnd_mymainwnd,-5000,-5000,10,10,false);
- 如何为 C++ Visual Studio 2019 指定应用程序图标?
- 为什么从文件获取图标时应用程序有时会崩溃?
- 为没有qmake/VS的Qt Windows应用程序设置.exe图标
- 如何向控制台应用程序添加图标
- 获取应用程序图标时出现问题
- 隐藏自定义应用程序窗口,但应在任务栏上显示应用程序图标(不是作为托盘图标)
- 在任务管理器中修改应用程序图标,而不是在系统托盘中
- 如何在OS X上的Qt应用程序中设置应用程序图标,足以进行分发
- 在Qt Creator中设置OSX的应用程序图标
- 使用CMake设置应用程序图标
- 如何在任务管理器中更改应用程序图标
- 在 Linux 上的 Qt 中获取应用程序图标 URL
- 如何在Qt中设置应用程序图标
- 应用程序图标Visual Studio 2010 c++
- 没有找到为windows应用程序设置应用程序图标的问题.rc文件
- 如何以编程方式将应用程序图标固定在windows 8的地铁启动屏幕上
- Qt4应用程序图标没有出现在Windows任务栏上
- Qt 5.0.1 中未显示应用程序图标
- 在用户关闭bb10(z10)应用程序时,访问主屏幕上的应用程序图标需要很长时间
- Qt5.6设置应用程序图标(Linux)