DGEnableNormalUpdate
다이얼로그의 부분적으로 업데이트 가능한 유저 아이템의 일반 업데이트 메커니즘을 활성화합니다.
void DGEnableNormalUpdate ( short dialId );
파라미터
- dialId
- 다이얼로그 또는 탭 페이지의 ID입니다. DG_TOP_MODAL은 최상위 Modal 다이얼로그를 지정합니다. DG_ALL_DIALOGS는 모든 다이얼로그들을 지정합니다.
설명
유저 아이템들은 업데이트를 해야 할 때마다 DG_MSG_UPDATE 메시지들을 받습니다. 만약 유저 아이템의 업데이트 프로세스가 너무 많은 시간이 소요된다면, 해당 항목에 대한 부분적인 업데이트를 활성화하는 것을 권장합니다. 만약 부분적인 업데이트가 활성화되면, DG가 일반 업데이트 메시지들 외에도 부분적인 업데이트 메시지들도 자동으로 혹은 애플리케이션의 요청에 따라 전송합니다.
만약 유저 아이템에 대한 부분적인 업데이트를 활성화하지 않으면, 일반 업데이트를 비활성화하는 것은 효과가 없습니다.
만약 애플리케이션이 DGDisableNormalUpdate 함수로 일반 업데이트를 비활성화하면, 다이얼로그는 DGEnableNormalUpdate 함수로 일반 업데이트를 다시 활성화할 때까지는 부분적인 업데이트 메시지들만 수신하게 될 것입니다.
다이얼로그에 대한 일반 업데이트를 비활성화하는 것이 유용한 경우는 다음과 같은 예시가 있습니다: 애플리케이션이 동시에 열린 많은 Modeless 창들을 갖고 있으며, 각 창은 계산하고 다시 그리는 데 많은 시간이 소요되는 그래픽을 가진 부분적인 업데이트가 가능한 유저 아이템을 갖고 있으며, 이 창들은 스크린 상에서 정렬될 필요가 있다고 가정합니다. (예를 들면, 타일식 또는 계단식) 만약 일반 업데이트를 비활성화하지 않고 창들을 다음과 같은 식으로 정렬하면: 1번째 창을 새로운 위치로 이동시키고, 리사이즈시키면, 전체 내용이 다시 그려집니다. 다시 그리기 프로세스가 지속되는 동안, 다음 창의 크기와 위치는 바뀌지 않습니다. 두 창들을 정렬하는 동안 많은 시간이 소요됩니다. 만약 일반 업데이트를 비활성화하면, 1번째 창이 이동하고 리사이즈되면 부분적인 업데이트 메시지를 받습니다. 이 메시지에 응답하면 시간 소모 없이 배경을 다시 그리고 몇 가지 기본 드로잉 함수들을 수행할 수 있습니다. 이 프로세스는 다음 창과 함께 계속됩니다. 모든 창들이 새로운 위치와 크기로 세트된 후에, DG는 각 창들에 대한 일반 업데이트 메시지들을 전송합니다. 이 경우, 1번째 일반 업데이트 메시지가 전송된 후에 창 배열이 발생하지 않습니다.
모든 업데이트 메시지를 통해 현재 유효하지 않은 영역이 메시지 데이터에 전송됩니다. 만약 부분적인 업데이트 가능한 유저 아이템을 포함하는 다이얼로그에 대한 일반 업데이트가 보류 중이면, 부분적인 업데이트 메시지들과 함께 전송된 유효하지 않은 영역들은 DG가 수집합니다. DGEnableNormalUpdate 함수를 호출하여 일반 업데이트가 복원되었을 때, 수집한 유효하지 않은 영역들의 union은 일반 업데이트 메시지에 포함되어 다이얼로그 콜백 함수에게 전송됩니다.
이 함수는 탭 페이지 ID와 함께 호출되어서는 안 됩니다.
요구사항
- 버전: DG 2.2.0 또는 이후
- 헤더: DG.h
- 라이브러리 가져오기: DG.lib [WIN]
- 모듈: DGLib [MAC], DG.dll [WIN]