;;把对话框内所有控件左右镜像,即左边的控件移到右边,右边的控件移到左边
;;仅提供思路:取对话框宽度,取控件位置表,计算出新的位置表,设置控件新位置
;;上下镜像原理相同:取对话框高度,取控件位置表,计算出新的位置表,设置控件新位置
;;当可停靠对话框的停靠边左右(上下)发生变化时,我们希望按钮总是靠近CAD绘图区那一边,此时该函数也许有用
;;参数FormName是OpenDCL对话框名
;;看看能文字能不能着色
 - (defun MirrorForm (FormName / Ctrl FormWidth OldPos NewPos)
- (mapcar '(lambda (Ctrl)
- (setq FormWidth (car (dcl_Form_GetControlArea FormName))) ;取对话框宽度
- (setq OldPos (dcl_Control_GetPos Ctrl));取控件位置表
- (setq
- NewPos (cons (- FormWidth (nth 0 OldPos) (nth 2 OldPos))
- (cdr OldPos)
- )
- );计算出新的位置表
- (apply 'dcl_Control_SetPos (cons Ctrl NewPos));设置控件新位置
- )
- (dcl_Form_GetControls FormName)
- )
- )
- )
|