Graphisoft®

Dialog ManagerVersion: 2.0

DGDragGetData

드래그 앤 드롭 데이터를 지정한 포맷으로 가져옵니다.

    bool DGDragGetData (
      DGDragFormat  format,
      void*         data,
      ULong*        size
    );

파라미터

format
Int32 값입니다. 보통 문자 표현에 사용됩니다. ('FILE', 'TEXT') 드래그하다 드롭된 데이터의 포맷을 식별하는 데 사용합니다.
 
data
출력 파라미터: 요청된 드래그 앤 드롭 데이터를 가져오기 위해 예전에 할당된 데이터입니다. size 파라미터에 드래그 앤 드롭 데이터의 크기를 가져오기 위해 NULL이 될 수 있습니다.
 
size
출력 파라미터: 드래그 앤 드롭 데이터의 크기를 주어진 포맷으로 가져옵니다.

리턴 값

의미
true 드래그 앤 드롭 데이터를 성공적으로 가져왔습니다.
false 함수 파라미터들이 올바르지 않습니다.

설명

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

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

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

DGDragGetData는 데이터 블록과 주어진 포맷의 데이터 블록 크기를 가져옵니다.

필요한 버퍼 크기를 결정하기 위해 data 파라미터에 대하여 NULL을 사용하십시오.

다음과 같은 드롭 대상 지정 이벤트가 발생했을 때 이 함수를 사용하십시오: DG_DRAG_ENTER, DG_DRAG_OVER, DG_DRAG_DROP. 만약 드래그 앤 드롭 데이터가 너무 크면, DG_DRAG_DROP이 발생했을 때에만 이 함수를 사용하십시오. 다른 경우에는 필수 피드백을 제공하기 위해 DGDragHasFormat을 사용하십시오.

'FILE' 포맷을 지정했을 때의 경우, 데이터는 새로 할당된 IO::Location들의 배열에 저장됩니다.

요구사항

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

참고사항

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