Короче говоря, я создаю диспетчер плиточного окна в стиле i3, и мне нужно переопределить chrome произвольного windows, чтобы принудительно удалить границы, заголовок и связанные кнопки.
Перепробовав практически каждую логическую комбинацию стилей WS_STYLE и WS_EX, связанных с хромированием, я ничего не получаю для большинства приложений. Это нормально с простыми встроенными программами (терминалы работают как положено), но для подавляющего большинства других приложений возникает та же проблема:
Выше результат присутствует в большинстве случаев. Есть окружающая граница того же размера, но с различным поведением для приложения. Насколько я могу судить, это «прозрачная» (очевидно, не в этом случае) граница, используемая для тестирования при перетаскивании мышью (хотя с стилем, отключенным в стилировании, этого не должно быть). Кажется, что кадровый буфер не очищается в этой области (т. Е. Если размер окна изменяется в себя, граница заполняется предыдущими пикселями в этом месте).
Это быстрый проект выходного дня - моя работа не имеет отношения к программированию WinAPI, так что для меня это все ново, но если я правильно понял, тогда эта граница фактически не относится к клиентской области? Другими словами, неклиентарея должна быть обнулена, чтобы клиентская область занимала весь прямоугольник окна. Я пытался справиться с этим, подклассифицируя все цели windows с помощью GWL_WNDPRO C и обнуляя WM_NCCALCSIZE, но я получаю тот же результат.
Как я могу вызвать произвольное окно (которое я не делаю ' создать себя) чтобы полностью удалить всю не клиентскую область?