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