DGDisableNormalUpdate
다이얼로그의 부분적으로 업데이트 가능한 유저 아이템의 일반 업데이트 메커니즘을 비활성화합니다.
void DGDisableNormalUpdate ( 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]