Как сделать ''-окно постоянной нижней части

из обсуждения этого чата , ошибка была в цикле for

for (int i = 0; i < words.size(); i++)

, где words.size() было 0, поэтому исправить это Вы должны использовать

for (int i = 0; i <= 260; i++)

, изменив words.size() на 260, где 260 - максимальное количество слов, которые пользователь может ввести.

7
задан Tim Post 21 November 2012 в 13:57
поделиться

2 ответа

Предупреждение было предложено, чтобы можно было выполнить это путем вызова SetParent и установки окна, чтобы быть ребенком Рабочего стола. Если Вы делаете это, Вы заставляете Менеджер окон Win32 комбинировать входную очередь Рабочего стола к Вашему дочернему окну, это - плохая вещь - Raymond Chen объясняет почему.

Кроме того, имейте в виду, что вызов SetWindowPos с HWND_BOTTOM является неполным. Необходимо сделать это каждый раз, когда окно изменяет zorder. Обработайте событие WM_WINDOWPOSCHANGING, посмотрите на SWP_NOZORDER для большего количества информации.

12
ответ дан 6 December 2019 в 07:52
поделиться

SetWindowPos может сделать окна AlwaysOnTop. Скорее всего, это может дать противоположный результат. Попробуйте что-то вдоль этих строк:

[DllImport("user32.dll")]
static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X,
   int Y, int cx, int cy, uint uFlags);


 public const uint SWP_NOSIZE          = 0x0001;
 public const uint SWP_NOMOVE          = 0x0002;
 public const uint SWP_NOACTIVATE      = 0x0010;
 public const int HWND_BOTTOM = 1;


SetWindowPos(hWnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);

Примечание:

  • Не протестировали этот подход (на то, что он всегда делал окна в нижней части)
  • Если это, окажется, будет работать, то, скорее всего, выставочная настольная операция скроет окно. Таким образом, возможно, необходимо пойти еще глубже в этот 'хороший' API.

Править: Сделанный некоторый поиск вдоль этих строк, чтобы подтвердить, добьется ли это цели и нашло что-то интересным - дубликат.

8
ответ дан 6 December 2019 в 07:52
поделиться
Другие вопросы по тегам:

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