Graphisoft®

Dialog ManagerVersion: 2.0

DGDragSetData

지정한 포맷과 범위를 가진 드래그 앤 드롭 데이터를 세트합니다.

    bool DGDragSetData (
      DGDragFormat  format,
      void*         data,
      ULong         size,
      short         scope
    );

파라미터

format
Int32 값입니다. 보통 문자 표현으로 사용됩니다. ('FILE', 'TEXT') 드롭된 드래그 데이터의 포맷을 식별하는 데 사용합니다.
 
data
드래그 앤 드롭 동작과 연관된 할당된 데이터입니다. 드래그 관리자는 이 데이터를 private 메모리 위치에 복사할 것입니다. 그래서 당신은 이 함수 호출 이후에 당신의 데이터를 해제해야 합니다.
 
size
data 포인터가 가리키는 바이트 단위의 데이터 크기입니다.
 
scope
드래그 앤 드롭 동작의 범위입니다. 주어진 범위 밖에서 이 데이터는 명시적으로 거부됩니다. 범위는 다음 값들을 가질 수 있습니다: DG_DRAG_SCOPE_ITEM, DG_DRAG_SCOPE_DIALOG, DG_DRAG_SCOPE_MODULE, DG_DRAG_SCOPE_APP, DG_DRAG_SCOPE_SYSTEM

리턴 값

의미
true 포맷이 성공적으로 세트되었습니다.
false 주어진 포맷을 세트할 수 없습니다.

설명

DGDragSetData 함수로 드래그 앤 드롭 동작에 대한 사용자 정의 데이터 블록들을 설정할 수 있는 가능성이 있습니다. 데이터 블록은 포맷을 갖고 있습니다. 이것은 Int32 값이며 이 블록의 데이터 포맷을 설명합니다. 이 포맷은 추가된 데이터 블록들의 포맷들 중에서 유일해야 합니다. 그래서 이미 존재하는 포맷으로 데이터 블록을 설정할 수 없습니다. 보통 이 블록은 드래그된 항목들, 지정된 포맷의 엔티티(또는 그에 대한 레퍼런스)들을 포함하고 있습니다.

필요한 경우 데이터 블록의 설정은 지연될 수 있습니다: DGDragSetData 대신 DGDragSetDelayedData 함수를 호출해야 합니다. 그리고 DG_DRAG_SETDELAYEDDATA 서브 메시지가 온 다음에 DGDragSetData로 데이터 블록을 세트해야 합니다.

리스트 뷰, 트리 뷰, 리스트 박스, 그리고 Edit 컨트롤들에 대하여, DG는 드래그 앤 드롭 동작이 시작할 때 데이터 블록을 설정합니다. 이 블록들의 타입은 다음과 같습니다: 'LVEX', 'TVEX', 'LBEX', 'TEXT'. 이 포맷들과 함께 사용할 수 있는 몇 가지 특수 함수들이 있습니다: DGDragGetItemCount, DGDragGetTreeViewItem, DGDragGetListBoxItem, DGDragGetListViewItem, DGDragModifyBaseFormat.

DGDragSetData는 주어진 포맷으로 데이터 블록을 설정합니다. 드래그 앤 드롭 동작을 하는 동안, 당신은 단 한 번 특정 포맷으로 드래그 앤 드롭 데이터를 세트할 수 있습니다.

DG_DRAG_START 이벤트가 발생했을 때 커스텀화된 드래그 앤 드롭 데이터를 세트하거나 DG_DRAG_SETDELAYEDDATA 이벤트가 발생했을 때 지연된 데이터를 세트하기 위해 이 함수를 사용하십시오.

파일 데이터는 'FILE' 포맷을 이용하여 세트될 수 있습니다. 데이터는 새로 할당된 유효한 IO::Location들의 배열에 대한 포인터이어야 합니다.

요구사항

버전: DG 2.0.0 또는 이후
헤더: DG.h
라이브러리 가져오기: DG.lib [WIN]
모듈: DGLib [MAC], DG.dll [WIN]

참고사항

DG_MSG_DRAGDROP, DGDragGetData, DGDragHasFormat
빌트인 드래그 포맷, DGDragSetDelayedData, DGDragModifyBaseFormat