APIDo_ChangeWindowID
현재 (활성) 창을 변경합니다.
GSErrCode ACAPI_Automate ( APIDo_ChangeWindowID, API_WindowInfo* windowInfo );
파라미터
- windowInfo
- [in] 요청된 전면 창의 식별 파라미터들입니다.
리턴 값
NoError
- 함수가 성공적으로 완료되었습니다.
APIERR_BADPARS
windowInfo
가NULL
입니다.APIERR_NOPLAN
- 열린 프로젝트가 아무것도 없습니다.
APIERR_BADWINDOW
- 요청된 전면 창이 유효하지 않습니다.
다른 공통 API 오류들에 대해서는 API 오류 문서를 보십시오.
설명
이 함수는 서버 애플리케이션의 전면 창을 변경하는 데 사용합니다. 이것은 Window 메뉴에서 적절한 메뉴를 클릭했을 때와 같은 동작을 수행합니다.
일반적으로 현재 창과 현재 데이터베이스의 창은 동일합니다. 그러나 반드시 조심해야 합니다; 데이터베이스 의존 함수들은 현재 창의 데이터베이스가 아닌 현재 데이터베이스 상에서 작동합니다. 인터페이스 함수들은 항상 현재 창에서 작동합니다.
이 함수는 현재 데이터베이스 역시 변경한다는 것을 참고하십시오.
만약 APIDb_ChangeCurrentDatabaseID 함수가 실패했다면 이 함수는 단면/입면 및 디테일 창의 데이터베이스에 접근하는 데 매우 유용합니다. 이것은 실제 프로젝트가 열린 이후에 단면 또는 디테일 창이 열리지 않았을 때 발생합니다; 데이터베이스는 재생성되지 않았으므로 사용할 수 없습니다. 일단 사용자가 단면 또는 디테일 창으로 전환하면 데이터베이스를 이용할 수 있게 됩니다.
예제
API_WindowInfo windowInfo; API_DatabaseInfo origDB, planDB; API_Element element; GS::Array<API_Guid> elemList; GSErrCode err; BNZeroMemory (&planDB, sizeof (API_DatabaseInfo)); planDB.typeID = APIWind_FloorPlanID; ACAPI_Database (APIDb_GetCurrentDatabaseID, &origDB, NULL); ACAPI_Database (APIDb_ChangeCurrentDatabaseID, &planDB, NULL); ACAPI_Element_GetElemList (API_CutPlaneID, &elemList); for (GS::Array<API_Guid>::ConstIterator it = elemList.Enumerate (); it != NULL; ++it) { ACAPI_Database (APIDb_ChangeCurrentDatabaseID, &planDB, NULL); BNZeroMemory (&element, sizeof (API_Element)); element.header.guid = *it; err = ACAPI_Element_Get (&element); if (err == NoError) { BNZeroMemory (&windowInfo, sizeof (API_WindowInfo)); windowInfo.typeID = APIWind_SectionID; windowInfo.databaseUnId = element.cutPlane.databaseID; err = ACAPI_Automate (APIDo_ChangeWindowID, &windowInfo, NULL); } }
요구사항
- 버전: API 2.2 또는 이후
- 헤더: APIdefs_Automate.h
참고사항
API_WindowInfo,
APIDb_ChangeCurrentDatabaseID,
ACAPI_Automate, API 함수