【求助】 关于制作自己的全屏工具<隐藏标题、菜单栏>
本帖最后由 wowan1314 于 2013-4-7 21:06 编辑喜欢全屏CAD作图。但已知的全屏工具均不太满意,所以有此想法.想要的全屏:无标题栏,无菜单栏,有工具栏,有状态栏,有系统任务栏。
已知的全屏工具缺点。
1.CAD自带的,仅无标题栏,但工具栏没了,系统任务栏没了
2.ET带的全屏,有工具栏,有系统任务栏,无标题,无菜单。但也没状态栏了!
3.有个外挂的全屏软件,什么都没了。
通过加载高飞鸟分享的那个VLX...可调用API函数。令我看到了希望。
但缺存在一点BUG. 故发帖求达人帮忙完善。(在窗口最大化的情况下)
1、打开多个图纸的情况下。在图纸间切换一下,菜单栏就又出现了。
2、从CAD界面切换到其他文件夹,再切换回来时候,系统的任务栏也被遮挡了。。
;;; 隐藏CAD菜单栏和标题栏
;;; ====================================================================
(defun C:Ccc (/ DWX app hwnd menu)
;; Create a DynamicWrapperX instance and register win32 API functions.
(setq DWX (vlax-create-object "DynamicWrapperX"))
(and (null DWX) (exit))
(vlax-invoke DWX 'Register "USER32" "SetWindowLong" "i=lll" "r=l") ;注册SetWindowLong函数
(vlax-invoke DWX 'Register "USER32" "GetWindowLong" "i=ll" "r=l") ;注册GetWindowLong函数
(vlax-invoke DWX 'Register "USER32" "SetMenu" "i=ll" "r=l");设置菜单
(vlax-invoke DWX 'Register "USER32" "GetMenu" "i=l" "r=l");取得当前菜单句柄
;;Hide the title and menubar
(setq app (vlax-get-acad-object)) ;当前CAD程序
(setq hwnd (vla-get-hwnd app)) ;CAD窗口句柄
(ShowTitle DWX hwnd nil) ;隐藏标题栏
(setq menu (vlax-invoke DWX 'GetMenu hwnd)) ;获得程序的菜单句柄
(and (/= menu 0) (setq hMenu menu)) ;此处应把hMenu设置为全局变量
(vlax-invoke DWX 'SetMenu hwnd 0) ;(vlax-invoke DWX 'SetMenu hwnd hMenu) 恢复菜单栏
;; Release object
(vlax-release-object app)
(vlax-release-object DWX)
(princ)
)
(defun ShowTitle (DWX hwnd Show / oldStyle) ;如果show 为t 那么显示,否则不显示
(setq oldStyle(vlax-invoke Dwx 'GetWindowLong hwnd -16)) ;GWL_STYLE -16
(if Show
(if (zerop (logand oldstyle 12582912)) ;WS_CAPTION 12582912 C00000
(vlax-invoke DWX 'SetWindowLong hwnd -16 (+ oldstyle 12582912))
)
(if (/= 0(logand oldstyle 12582912)) ;WS_CAPTION 12582912 C00000
(vlax-invoke DWX 'SetWindowLong hwnd -16 (- oldstyle 12582912))
)
)
)
沉的太快了!!! 我顶 我来帮你顶, 顶啊。。。。 其实我有个好方法
买个27的显示器,就不用全屏了
帮你顶 print1985 发表于 2013-4-9 09:34 static/image/common/back.gif
其实我有个好方法
买个27的显示器,就不用全屏了
帮你顶
其实每次我都是手动设置全屏!只是想用程序会省事很多! 好想法,楼主厉害88
帮你顶一下,弱弱问一下,ET带的全屏命令是那个? 期待高人出现!我也想拥有这样的工具! 主题要求写的非常细致,帮顶。