표시되었을 때 활성화 옵션 해제
컨트롤은 활성 및 비활성의 두 가지 기본 상태를 가집니다. 일반적으로 이러한 상태는 컨트롤에 창이 있는지 여부에 따라 구분됩니다. 활성 컨트롤에는 창이 있지만 비활성 컨트롤에는 창이 없습니다. 창 없는 활성화의 도입으로 이러한 구분은 더 이상 일반적이지 않지만 여전히 많은 컨트롤에 적용됩니다.
ActiveX 컨트롤에서 일반적으로 수행하는 초기화의 나머지 부분과 비교할 때 창 만들기는 매우 비용이 많이 드는 작업입니다. 이상적으로 컨트롤은 절대적으로 필요할 때까지 창 만들기를 연기합니다.
많은 컨트롤이 컨테이너에 표시되는 전체 시간 동안 활성화될 필요가 없습니다. 컨트롤이 활성화되어야 하는 작업을 수행할 때까지(예: 마우스로 클릭하거나 TAB 키를 누르는 등) 비활성 상태로 다시 기본 수 있습니다. 컨테이너가 활성화해야 할 때까지 컨트롤기본이 다시 비활성화되도록 하려면 컨트롤의 기타 플래그에서 OLEMISC_ACTIVATEWHENVISIBLE 플래그를 제거합니다.
static const DWORD BASED_CODE _dwNVC_MFC_AxOptOleMisc =
OLEMISC_SETCLIENTSITEFIRST |
OLEMISC_INSIDEOUT |
OLEMISC_CANTLINKINSIDE |
OLEMISC_RECOMPOSEONRESIZE;
컨트롤을 만들 때 MFC ActiveX 컨트롤 마법사의 컨트롤 설정 페이지에서 [표시할 때 활성화] 옵션을 해제하면 OLEMISC_ACTIVATEWHENVISIBLE 플래그가 자동으로 생략됩니다.