Я практикуюсь с минимальным примером wxwidgets, и я хотел реализовать это поведение, я не знаю, как это называется. Поведение это; (используя audacity, поскольку он также использует wxwidgets), когда вы открываете программу с использованием прямого доступа, она обычно помечается звездочкой, но если вы снова нажимаете на прямой доступ, она отправляет вас на текущий экземпляр, который вы уже открыли, также в Windows 10, если у вас есть, например, 4 рабочих столов, и вы открываете программу на рабочем столе 4, а затем переходите к рабочему столу 1 и нажимаете прямой доступ, он отправляет вас к программе, работающей на рабочем столе 4.
Как я могу реализовать это в wxwidgets?
чем ты заранее.
То, что вы ищете, обычно (по крайней мере, в Windows) называют «приложениями с одним экземпляром», и для достижения этого вам необходимо иметь своего рода IPC между различными экземплярами (то есть копиями) вашего приложения.
Вообще говоря, при запуске приложение с одним экземпляром будет пытаться открыть канал IPC для другой своей версии и, в случае успеха, отправить свои собственные аргументы командной строки, если таковые имеются, существующему экземпляру и выйти из текущего. Конечно, если произойдет сбой, приложение продолжит работу в обычном режиме, если предположить, что другого экземпляра нет.
С wxWidgets вы можете использовать класс wxSingleInstanceChecker просто выполнить проверку, но этого обычно недостаточно, поэтому вы также должны использовать wxServer а также wxClient объекты для фактической передачи информации между экземплярами. Вы можете прочитать больше о них в Обзор IPC в руководстве.
Других решений пока нет …