Значок Removing от строк заголовка Windows, не угробив близкую кнопку или системное меню?

Как отметил @FelixKling, наиболее вероятным сценарием является то, что узлы, которые вы ищете, еще не существуют.

Однако современные методы разработки часто могут манипулировать элементами документа за пределами дерева документов либо с DocumentFragments, либо просто отсоединением / повторным подключением текущих элементов напрямую. Такие методы могут использоваться как часть шаблонов JavaScript или для предотвращения чрезмерных операций перерисовки / переплавки, в то время как элементы, о которых идет речь, сильно изменяются.

Аналогично, новая функциональность «Теневой DOM» развертывается в современных браузерах позволяет элементам быть частью документа, но не обрабатываться запросом document.getElementById и всеми его методами sibling (querySelector и т. д.). Это делается для инкапсуляции функциональных возможностей и, в частности, скрыть его.

Опять же, скорее всего, элемент, который вы ищете, просто (пока) в документе, и вы должны сделать, как предлагает Феликс , Тем не менее, вы также должны знать, что это все чаще является не единственной причиной того, что элемент может быть необоснованным (временно или постоянно).

6
задан CinCout - Reinstate Monica 20 December 2016 в 08:45
поделиться

4 ответа

Можно использовать WM_NCRBUTTONDOWN обнаружить, если пользователь щелкнул правой кнопкой по Вашей подписи и затем поднимает системное меню.

2
ответ дан 16 December 2019 в 21:49
поделиться

Без значка единственный метод я мог вообразить, чтобы пользовательский доступ системное меню через щелчок правой кнопкой строки заголовка.

Если это - то, что Вы имели в виду, Вы могли обработать WM_RBUTTONDOWN на своем основном кадре и затем вычислить, если бы щелчок правой кнопкой был в строке заголовка.

int clickX = GET_X_LPARAM(lParam);
int clickY = GET_Y_LPARAM(lParam);

CRect frameRect;
mainFrame.GetWindowRect(&frameRect);

int titleBarHeight = GetSystemMetrics(SM_CYCAPTION);

if (clickX >= frameRect.left &&
    clickX <= frameRect.right &&
    clickY >= frameRect.top &&
    clickY <= frameRect.top + titleBarHeight)
{
   TrackPopupMenu(m_systemMenu);
}
0
ответ дан 16 December 2019 в 21:49
поделиться

что относительно того, чтобы избавиться от системного меню и затем отложить его в другом месте yourseld (говорят рядом с близкой кнопкой и т.д.)?

0
ответ дан 16 December 2019 в 21:49
поделиться

Установить WS_EX_DLGMODALFRAME расширенный стиль.

4
ответ дан 16 December 2019 в 21:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: