フレームを表示

L_AnnSetSnapToGrid

フレームを表示

#include "l_bitmap.h"

L_LTANN_API L_INT L_AnnSetSnapToGridhAutomation、uSnapToGridMode、pOptions

HANNOBJECT hAutomation;

/* 自動オブジェクトへのハンドル*/

L_UINT uSnapToGridMode;

/* グリッドスナップ状態(つけるかつけない)を指定する定数*/

pANNSNAPTOGRIDOPTIONS pOptions;

/* グリッドスナップオプションを指定する構造体へのポインタ*/

アノテーショングリッドスナップの状態(つけるかつけない)、見た目と動作を設定します。

パラメーター

説明

hAutomation

アノテーションオートメーションオブジェクトを扱えます。

uSnapToGridMode

グリッドスナップ状態を指定する定数。設定可能な値は、以下の通りです。

uSnapToGridMode

グリッドスナップ状態を指定する定数。設定可能な値は、以下の通りです。

 

意味

 

ANN_SNAPTOGRID_OFF

グリッドスナップ機能が無効になっています。

 

ANN_SNAPTOGRID_ON

グリッドスナップ機能有効にされる、そして、オートメーション設計モードで見える、

pOptions

LEADTOOLSがグリッドスナップの見た目と動作をカスタマイズするために使うANNSNAPTOGRIDOPTIONS構造体へのポインター。

戻り値

SUCCESS

関数は成功しました。

<1

エラーが発生しました。リターンコードを参照してください

コメント

この関数は、グリッドスナップを有効または無効にして、その外観と動作をカスタマイズするのに用いられます。

グリッドスナップ機能が、正確にアノテーションオブジェクトを描画して、見つけて、位置合わせするのにユーザーを見込むために、アノテーションオートメーション設計モードで使われます。グリッドスナップがuSnapToGridModeパラメーターをANN_SNAPTOGRID_ONに設定することによって有効にされるとき、点と行からなる格子図形はimageの上でオーバレイです。設計モードではアノテーションを作成するとき、各々のポイントは最も近いグリッド点にスナップします。この動作は、作成している任意のアノテーションオブジェクトEXCEPTのために、フリーハンドのアノテーションを保持します。フリーハンドのアノテーションを作成するとき、これがフリーハンドの動作に悪影響を与えるので、個々のポイントは最も近いグリッド点にスナップしません。アノテーションオブジェクトの境界ボックスが最も近いグリッド点にカチッとしまるという点で、グリッドスナップ機能は設計モードではすべてのアノテーションオブジェクトタイプを移動することに影響を及ぼします。

速くグリッドスナップを無効にすることを有効にするために、uSnapToGridModeパラメーターのために適切な定数を渡します、そして、pOptionsパラメーターのためにNULLを渡します。

グリッドスナップの見た目と動作をカスタマイズするために、型ANNSNAPTOGRIDOPTIONSの変数を宣言します、そして、pOptionsのためにこの変数のアドレスを渡します。アノテーショングリッドスナップ機能の詳解のために、ANNSNAPTOGRIDOPTIONSのためにドキュメンテーションを参照します。

必須のDLLとライブラリ

LTANN

ツールキットバージョンに基づいた正確なDLLとライブラリのリストについては、「アプリケーションとともに配布するファイル」を参照してください

プラットホーム

Win32 x 64

参照

関数:

L_AnnGetSnapToGrid

トピック:

アノテーションObjects-オートメーション化した機能

サンプル

*がグリッドスナップ*の現在の状態のために得るこのサンプルは、10(点の行あらゆる10行)のグリッドサイズに、グリッドにスナップを変更します実線レッドライン*が、グリッドにスナップを有効にします

L_TCHAR* getLineStyleString(L_UINT uLineStyle)
{
   TCHAR *pszLineStyle = TEXT("");
   switch(uLineStyle)
   {
   case ANNLINE_SOLID:
      pszLineStyle = TEXT("ANNLINE_SOLID");
      break;
   case ANNLINE_DASH:
      pszLineStyle = TEXT("ANNLINE_DASH");
      break;

   case ANNLINE_DOT:
      pszLineStyle = TEXT("ANNLINE_DOT");
      break;

   case ANNLINE_DASHDOT:
      pszLineStyle = TEXT("ANNLINE_DASHDOT");
      break;

   case ANNLINE_DASHDOTDOT:
      pszLineStyle = TEXT("ANNLINE_DASHDOTDOT");
      break;

   case ANNLINE_NULL:
      pszLineStyle = TEXT("ANNLINE_NULL");
      break;
   }
   return pszLineStyle;
}

L_VOID DisplaySnapToGrid(HANNOBJECT hAutomation, L_TCHAR *pszTitle)
{
   L_TCHAR szMsg[200] = {0};
   ANNSNAPTOGRIDOPTIONS options = {0};
   L_UINT uSnapToGridMode = ANN_SNAPTOGRID_OFF;
   options.uStructSize = sizeof(ANNSNAPTOGRIDOPTIONS);
   options.uFlags = ANNSNAPTOGRID_ALL;
   L_INT nRet = L_AnnGetSnapToGrid(hAutomation, &uSnapToGridMode,  &options);
   if (nRet == SUCCESS)
   {
      wsprintf(szMsg, TEXT("uSnapToGridMode[%s]\ncrGridColor[0x%x]\nuGridLength[%d]\nuLineSpacing[%d]\nuLineStyle[%s]\nbEnableSnap[%s]\nbShowGrid[%s]\nbAutoChangeGridLength[%s]"),
         uSnapToGridMode == ANN_SNAPTOGRID_OFF ? TEXT("ANN_SNAPTOGRID_OFF") : TEXT("ANN_SNAPTOGRID_ON"),
         options.crGridColor,
         options.uGridLength,
         options.uLineSpacing,
         getLineStyleString(options.uLineStyle),
         options.bEnableSnap ? TEXT("TRUE") : TEXT("FALSE"),
         options.bShowGrid ? TEXT("TRUE") : TEXT("FALSE"),
         options.bAutoChangeGridLength ? TEXT("TRUE") : TEXT("FALSE")
         );
      MessageBox(NULL, szMsg, pszTitle, MB_OK);
   }
}

L_LTANNTEX_API L_INT SampleAnnSetSnapToGridExample(HANNOBJECT hAutomation)
{
   L_INT nRet = SUCCESS;
   // Make sure that the snap-to-grid features is enabled
   L_AnnSetOptions(hAutomation, OPTIONS_NEW_ALL | OPTIONS_NEW_SNAPTOGRID);

   // Display current snap-to-grid settings
   DisplaySnapToGrid(hAutomation, TEXT("Original Settings"));


   // Change snap-to-grid to grid size of 10, lines every ten row of dots, solid red lines, and enable it
   ANNSNAPTOGRIDOPTIONS options = {0};
   options.uStructSize = sizeof(ANNSNAPTOGRIDOPTIONS);
   options.uFlags = ANNSNAPTOGRID_ALL;
   options.bAutoChangeGridLength = TRUE;
   options.bEnableSnap = TRUE;
   options.bShowGrid = TRUE;
   options.crGridColor = RGB(255,0,0);
   options.uGridLength = 10;
   options.uLineSpacing = 10;
   options.uLineStyle = ANNLINE_SOLID;
   options.nReserved = 0;

   nRet = L_AnnSetSnapToGrid(hAutomation, ANN_SNAPTOGRID_ON, &options);
   if (nRet == SUCCESS)
   {
      DisplaySnapToGrid(hAutomation, TEXT("New Settings"));
   }
   return nRet;
}