概要 - イメージ ボタンとイメージ タイルを処理する(DCL)

イメージ ボタンは単にボタンとして扱えるので、イメージ ボタンを使用して 1 つのアクションを起動することができます。

注: AutoLISP での DCL のサポートは Windows のみに制限されています。

しかし、PDB 機能を使用してボタン内で複数の領域を定義することもできます。定義した領域を使用して、ユーザがイメージ ボタンのどの部分を選択したかに応じてアクションが異なるようにすることもできます。この仕組みは非常に単純です。イメージ ボタンのアクションやコールバックは、ユーザが選択した(X, Y)座標の位置を返します。座標はイメージ ボタンのタイルの特定の範囲内にあります(タイル寸法関数が返す範囲)。アプリケーションはイメージの領域を暗黙的に定義し、それぞれの位置に対して意味を割り当てなくてはなりません。DDVPOINT[3D 視点プリセット D]ダイアログ ボックスは、この機能を利用しています。これは、AutoCAD の DDVPOINT[3D 視点プリセット D]コマンドを実行することによって表示できます。

次の例では、イメージ ボタンは fill_image で作成された 2 つの色見本を備えています。ユーザがどの領域を選択するかに応じて、どちらかの色見本が選択されます。イメージ ボタンが上下に分割されている場合(上は Dark、下は Light)、アクションは 1 つの座標をテストするだけで済みます。

(action_tile "image_sel" "(pick_shade $key $value $y)")
...
(defun pick_shade (key val y)
  (setq threshold (/ ( dimy_tile key) 2)) ;Image is divided horizontally.
  (if (> y threshold)                     ;Remember that the origin is at
    (setq result "Light")                 ;upper left.
    (setq result "Dark")
  )
)