我最近发现如何在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-horizontally
和maximize-frame
命令,以及在最大化之前将框架恢复到其大小(垂直,水平或两者)的命令。