Windows 7,如何告诉另一个窗口"snap"到最大垂直大小?如何在 elisp 中做到这一点?



我最近发现如何在Windows上在emacs elisp中最大化emacs帧:我如何设置emacs的大小'窗户吗?。

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

我更愿意做的是让我的emacs窗口"snap"到它的最大垂直大小使用Windows 7的"snap"功能。

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

是否有一个类似的窗口消息,我可以发送到任何窗口,或我的emacs窗口有它捕捉到最大的垂直大小?

(作为开始,我可以谷歌上面的61488是0xF300,对应于WM_SYSCOMMAND SC_MAXIMIZE,这是窗口系统菜单中的一个条目,而"垂直捕获"不在该菜单中,所以我认为它不会通过WM_SYSCOMMAND消息....发生)

根据这篇博文,您需要执行:

PostMessage(hwndTarget, WM_NCLBUTTONDBLCLK, HTTOP, 0);

我看了一下,但是看起来emacs没有相应的w32-send-mesage。如果你找到了,WM_NCLBUTTONDBLCLK是163,HTTOP是12。

不知道你在问什么。您同时谈到了Emacs框架和Emacs窗口,但我仍然不知怎么地得到这样的印象,也许您真正的意思是您想要最大化框架,但只是在垂直方向上。对吗?

如果存在,请参见frame-cmds.el中的maximize-frame-vertically命令。还有maximize-frame-horizontallymaximize-frame命令,以及在最大化之前将框架恢复到其大小(垂直,水平或两者)的命令。

相关内容

最新更新