Windows 7, как сказать другому окну «привязаться» к максимальному вертикальному размеру?И как это сделать в elisp? - PullRequest
2 голосов
/ 12 октября 2011

Я недавно обнаружил, как в Windows в emacs elisp я могу максимизировать фрейм emacs: Как мне установить размер окна Emacs? .

(defun w32-maximize-frame ()
  "Maximize the current frame"
  (interactive)
  (w32-send-sys-command 61488))

Я бы предпочел, чтобы окно emacs «привязывалось» к максимальному вертикальному размеру с помощью функции «привязки» Windows 7.

(defun w32-snap-max-vertical-frame ()
  "Maximize the vertical size of the current frame"
  (interactive)
  ; insert magic here
  )

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

(Для начала, я могу Google, что 61488 выше 0xF300 и соответствует WM_SYSCOMMAND SC_MAXIMIZE, который является записью в системном меню окна, а «привязка к вертикали» отсутствует в этом меню, поэтому я нене думаю, что это произойдет через сообщение WM_SYSCOMMAND ....)

Ответы [ 2 ]

2 голосов
/ 13 октября 2011

Согласно этой записи в блоге , вам необходимо выполнить:

PostMessage(hwndTarget, WM_NCLBUTTONDBLCLK, HTTOP, 0);

Я посмотрел, но похоже, что в emacs нет w32-send-mesage эквивалента. Если вы найдете его, WM_NCLBUTTONDBLCLK - это 163, а HTTOP - это 12.

1 голос
/ 01 января 2012

Не уверен, что вы спрашиваете.Вы говорите как о фреймах Emacs, так и о окнах Emacs, но у меня все еще как-то складывается впечатление, что, возможно, вы действительно имеете в виду, что хотите максимизировать фрейм, но только в вертикальном направлении.Это верно?

Если это так, см. Команду maximize-frame-vertically в frame-cmds.el.Есть также команды maximize-frame-horizontally и maximize-frame, а также команды для восстановления кадра до его размеров (вертикального, горизонтального или обоих) до максимизации.

...