[求助]要设计一个背景颜色切换
在做报告中,经常要把CAD的背景颜色进行切换,一般都是在工具选项菜单这样设置,如果经常切换比较繁琐。现在好像还没有 这样方面的程序,不知道 如何开发一个这样简单实用 一键切换背景颜色(黑色和白色最经常切换)的 程序
;; This lisp can change background color for 2D model space
(defun c:gr (/ VAR-COLOUR DISPLAY clno blue rde green)
(setq clno (getint "\n=>Input colour No!"))
(prompt "\n,1=red,2=yellow,3=gree,4=cyan,5=blue,6=magenta,7=white"
)
(cond ((= clno 1)
(progn (setq rde 255) (setq green 0) (setq blue 0))
)
((= clno 2)
(progn (setq rde 255) (setq green 255) (setq blue 0))
)
((= clno 3)
(progn (setq rde 0) (setq green 255) (setq blue 0))
)
((= clno 4)
(progn (setq rde 0) (setq green 255) (setq blue 255))
)
((= clno 5)
(progn (setq rde 0) (setq green 0) (setq blue 255))
)
((= clno 6)
(progn (setq rde 255) (setq green 0) (setq blue 255))
)
((= clno 7)
(progn (setq rde 255) (setq green 255) (setq blue 255))
)
((= clno 8)
(progn (setq rde 128) (setq green 128) (setq blue 128))
)
((= clno 9)
(progn (setq rde 192) (setq green 192) (setq blue 192))
)
(t (progn (setq rde 0) (setq green 0) (setq blue 0)))
)
(setq
VAR-COLOUR (vlax-make-variant
(+ rde (* green 256)(* blue 65536))
vlax-vblong
)
DISPLAY (vla-get-display
(vla-get-preferences
(vla-get-application (vlax-get-acad-object))
)
)
)
;(vla-put-graphicswinlayoutbackgrndcolor DISPLAY VAR-COLOUR)
(vla-put-graphicswinmodelbackgrndcolor DISPLAY VAR-COLOUR)
) Sub Example_GraphicsWinModelBackgrndColor()
' This example returns the current setting of
' GraphicsWinModelBackgrndColor. It then changes the value, and finally
' it resets the value back to the original setting.
Dim preferences As AcadPreferences
Dim currGraphicsWinModelBackgrndColor As OLE_COLOR
Set preferences = ThisDrawing.Application.preferences
' Retrieve the current GraphicsWinModelBackgrndColor value
currGraphicsWinModelBackgrndColor = preferences.Display.GraphicsWinModelBackgrndColor
MsgBox "The current value for GraphicsWinModelBackgrndColor is " _
& preferences.Display.GraphicsWinModelBackgrndColor, vbInformation, "GraphicsWinModelBackgrndColor 示例"
' Change the value for GraphicsWinModelBackgrndColor
preferences.Display.GraphicsWinModelBackgrndColor = vbBlue
MsgBox "The new value for GraphicsWinModelBackgrndColor is " _
& preferences.Display.GraphicsWinModelBackgrndColor, vbInformation, "GraphicsWinModelBackgrndColor 示例"
' Reset GraphicsWinModelBackgrndColor to its original value
preferences.Display.GraphicsWinModelBackgrndColor = currGraphicsWinModelBackgrndColor
MsgBox "The GraphicsWinModelBackgrndColor value is reset to " _
& preferences.Display.GraphicsWinModelBackgrndColor, vbInformation, "GraphicsWinModelBackgrndColor 示例"
End Sub
autocad自带的例子 xinxirong 发表于 2017-9-4 09:24
3年解决不了这个问题,只能说你不适合编程。要学会动用一切手段去研究,比如监视注册表,od调试。
谢谢你的建议,我是编程爱好者,不是研究者,我会一直学习的。 论坛里面真有这个插件,你搜索一下背景颜色 多谢你啊 就是没有搜到哦 经过3年 这个问题终于可以 变通解决了。
思路 就是 先画一个矩形,然后矩形填充成白色,这样就是白色背景了。
谢谢论坛陪我的3年。 找一找,一个系统变量就解决了 3年解决不了这个问题,只能说你不适合编程。要学会动用一切手段去研究,比如监视注册表,od调试。 回帖是一种美德!感谢楼主的无私分享 谢谢 edata 发表于 2017-9-4 18:22
谢谢你的代码,虽然我看不懂。能力有限。
页:
[1]
2