COleControl 클래스
OLE 컨트롤을 개발할 수 있는 강력한 기본 클래스입니다.
구문
class COleControl : public CWnd
멤버
공용 생성자
속성 | 설명 |
---|---|
COleControl::COleControl | COleControl 개체를 만듭니다. |
공용 메서드
이름 | 설명 |
---|---|
COleControl::AmbientAppearance | 컨트롤의 현재 모양을 검색합니다. |
COleControl::AmbientBackColor | 앰비언트 BackColor 속성의 값을 반환합니다. |
COleControl::AmbientDisplayName | 컨테이너에서 지정한 컨트롤의 이름을 반환합니다. |
COleControl::AmbientFont | 앰비언트 글꼴 속성의 값을 반환합니다. |
COleControl::AmbientForeColor | 앰비언트 ForeColor 속성의 값을 반환합니다. |
COleControl::AmbientLocaleID | 컨테이너의 로캘 ID를 반환합니다. |
COleControl::AmbientScaleUnits | 컨테이너에서 사용하는 단위의 형식을 반환합니다. |
COleControl::AmbientShowGrabHandles | 잡기 핸들을 표시할지 여부를 결정합니다. |
COleControl::AmbientShowHatching | 빗살 무늬를 표시할지 여부를 결정합니다. |
COleControl::AmbientTextAlign | 컨테이너에서 지정한 텍스트 맞춤의 형식을 반환합니다. |
COleControl::AmbientUIDead | 컨트롤이 사용자 인터페이스 작업에 응답해야 하는지 여부를 결정합니다. |
COleControl::AmbientUserMode | 컨테이너의 모드를 결정합니다. |
COleControl::BoundPropertyChanged | 바인딩된 속성이 변경되었음을 컨테이너에 알립니다. |
COleControl::BoundPropertyRequestEdit | 속성 값을 편집할 수 있는 권한을 요청합니다. |
COleControl::ClientToParent | 컨트롤의 원점을 기준으로 한 점을 컨테이너의 원점을 기준으로 한 지점으로 변환합니다. |
COleControl::ClipCaretRect | 컨트롤과 겹치는 경우 캐리트 사각형을 조정합니다. |
COleControl::ControlInfoChanged | 컨트롤에서 처리하는 니모닉 집합이 변경된 후 이 함수를 호출합니다. |
COleControl::DisplayError | 컨트롤의 사용자에게 스톡 오류 이벤트를 표시합니다. |
COleControl::DoClick | 스톡 DoClick 메서드의 구현입니다. |
COleControl::DoPropExchange | 개체의 COleControl 속성을 serialize합니다. |
COleControl::DoSuperclassPaint | Windows 컨트롤에서 서브클래스된 OLE 컨트롤을 다시 그립니다. |
COleControl::EnableSimpleFrame | 컨트롤에 대한 간단한 프레임 지원을 사용하도록 설정합니다. |
COleControl::ExchangeExtent | 컨트롤의 너비와 높이를 직렬화합니다. |
COleControl::ExchangeStockProps | 컨트롤의 스톡 속성을 직렬화합니다. |
COleControl::ExchangeVersion | 컨트롤의 버전 번호를 serialize합니다. |
COleControl::FireClick | 주식 Click 이벤트를 실행합니다. |
COleControl::FireDblClick | 주식 DblClick 이벤트를 실행합니다. |
COleControl::FireError | 주식 Error 이벤트를 실행합니다. |
COleControl::FireEvent | 사용자 지정 이벤트를 실행합니다. |
COleControl::FireKeyDown | 주식 KeyDown 이벤트를 실행합니다. |
COleControl::FireKeyPress | 주식 KeyPress 이벤트를 실행합니다. |
COleControl::FireKeyUp | 주식 KeyUp 이벤트를 실행합니다. |
COleControl::FireMouseDown | 주식 MouseDown 이벤트를 실행합니다. |
COleControl::FireMouseMove | 주식 MouseMove 이벤트를 실행합니다. |
COleControl::FireMouseUp | 주식 MouseUp 이벤트를 실행합니다. |
COleControl::FireReadyStateChange | 컨트롤의 준비 상태가 변경되면 이벤트를 발생합니다. |
COleControl::GetActivationPolicy | 인터페이스를 지원하는 컨트롤의 기본 활성화 동작을 IPointerInactive 변경합니다. |
COleControl::GetAmbientProperty | 지정된 앰비언트 속성의 값을 반환합니다. |
COleControl::GetAppearance | Stock Appearance 속성의 값을 반환합니다. |
COleControl::GetBackColor | Stock BackColor 속성의 값을 반환합니다. |
COleControl::GetBorderStyle | stock BorderStyle 속성의 값을 반환합니다. |
COleControl::GetCapture | 창이 없는 활성화된 컨트롤 개체에 마우스 캡처가 있는지 여부를 확인합니다. |
COleControl::GetClassID | 컨트롤의 OLE 클래스 ID를 검색합니다. |
COleControl::GetClientOffset | 컨트롤의 사각형 영역의 왼쪽 위 모서리와 클라이언트 영역의 왼쪽 위 모퉁이 사이의 차이를 검색합니다. |
COleControl::GetClientRect | 컨트롤의 클라이언트 영역 크기를 검색합니다. |
COleControl::GetClientSite | 컨테이너 내의 현재 클라이언트 사이트에 대한 포인터에 대한 개체를 쿼리합니다. |
COleControl::GetControlFlags | 컨트롤 플래그 설정을 검색합니다. |
COleControl::GetControlSize | OLE 컨트롤의 위치와 크기를 반환합니다. |
COleControl::GetDC | 컨테이너에서 디바이스 컨텍스트를 가져오는 창 없는 컨트롤에 대한 수단을 제공합니다. |
COleControl::GetEnabled | Stock Enabled 속성의 값을 반환합니다. |
COleControl::GetExtendedControl | 컨테이너에 속하는 확장 컨트롤 개체에 대한 포인터를 검색합니다. |
COleControl::GetFocus | 컨트롤에 포커스가 있는지 여부를 확인합니다. |
COleControl::GetFont | stock Font 속성의 값을 반환합니다. |
COleControl::GetFontTextMetrics | 개체의 메트릭을 CFontHolder 반환합니다. |
COleControl::GetForeColor | 주식 ForeColor 속성의 값을 반환합니다. |
COleControl::GetHwnd | stock hWnd 속성의 값을 반환합니다. |
COleControl::GetMessageString | 메뉴 항목에 대한 상태 표시줄 텍스트를 제공합니다. |
COleControl::GetNotSupported | 사용자가 컨트롤의 속성 값에 액세스할 수 없도록 합니다. |
COleControl::GetReadyState | 컨트롤의 준비 상태를 반환합니다. |
COleControl::GetRectInContainer | 해당 컨테이너를 기준으로 컨트롤의 사각형을 반환합니다. |
COleControl::GetStockTextMetrics | stock Font 속성의 메트릭을 반환합니다. |
COleControl::GetText | Stock Text 또는 Caption 속성의 값을 반환합니다. |
COleControl::GetWindowlessDropTarget | 창 없는 컨트롤이 끌어서 놓기 작업의 대상이 되도록 재정의합니다. |
COleControl::InitializeIIDs | 컨트롤에서 사용할 IID의 기본 클래스를 알릴 수 있습니다. |
COleControl::InternalGetFont | CFontHolder stock Font 속성의 개체를 반환합니다. |
COleControl::InternalGetText | 주식 캡션 또는 텍스트 속성을 검색합니다. |
COleControl::InternalSetReadyState | 컨트롤의 준비 상태를 설정하고 준비 상태 변경 이벤트를 실행합니다. |
COleControl::InvalidateControl | 표시된 컨트롤의 영역을 무효화하여 다시 그려지게 합니다. |
COleControl::InvalidateRgn | 지정된 지역 내에서 컨테이너 창의 클라이언트 영역을 무효화합니다. 지역에서 창 없는 컨트롤을 다시 그리는 데 사용할 수 있습니다. |
COleControl::IsConvertingVBX | OLE 컨트롤의 특수 로드를 허용합니다. |
COleControl::IsModified | 컨트롤 상태가 변경되었는지 여부를 확인합니다. |
COleControl::IsOptimizedDraw | 컨테이너가 현재 그리기 작업에 최적화된 그리기를 지원하는지 여부를 나타냅니다. |
COleControl::IsSubclassedControl | 컨트롤이 Windows 컨트롤을 서브클래싱하는지 확인하기 위해 호출됩니다. |
COleControl::Load | 이전의 비동기 데이터를 다시 설정 하 고 컨트롤의 비동기 속성의 새 로드를 시작 합니다. |
COleControl::LockInPlaceActive | 컨테이너에서 컨트롤을 비활성화할 수 있는지 여부를 결정합니다. |
COleControl::OnAmbientPropertyChange | 앰비언트 속성이 변경될 때 호출됩니다. |
COleControl::OnAppearanceChanged | Stock Appearance 속성이 변경될 때 호출됩니다. |
COleControl::OnBackColorChanged | 주식 BackColor 속성이 변경될 때 호출됩니다. |
COleControl::OnBorderStyleChanged | Stock BorderStyle 속성이 변경될 때 호출됩니다. |
COleControl::OnClick | Stock Click 이벤트를 실행하기 위해 호출됩니다. |
COleControl::OnClose | 호출된 컨트롤에 IOleControl::Close 알립니다. |
COleControl::OnDoVerb | 컨트롤 동사가 실행된 후 호출됩니다. |
COleControl::OnDraw | 컨트롤 자체를 다시 그리도록 요청될 때 호출됩니다. |
COleControl::OnDrawMetafile | 메타파일 디바이스 컨텍스트를 사용하여 컨트롤을 다시 그리도록 요청될 때 컨테이너에서 호출됩니다. |
COleControl::OnEdit | OLE 컨트롤을 UI 활성화하기 위해 컨테이너에서 호출합니다. |
COleControl::OnEnabledChanged | Stock Enabled 속성이 변경될 때 호출됩니다. |
COleControl::OnEnumVerbs | 컨트롤의 동사를 열거하기 위해 컨테이너에서 호출합니다. |
COleControl::OnEventAdvise | 이벤트 처리기가 컨트롤과 연결되거나 연결이 끊어지면 호출됩니다. |
COleControl::OnFontChanged | stock Font 속성이 변경될 때 호출됩니다. |
COleControl::OnForeColorChanged | 주식 ForeColor 속성이 변경될 때 호출됩니다. |
COleControl::OnFreezeEvents | 컨트롤의 이벤트가 고정되거나 고정되지 않은 경우 호출됩니다. |
COleControl::OnGetColorSet | 호출된 컨트롤에 IOleObject::GetColorSet 알립니다. |
COleControl::OnGetControlInfo | 컨테이너에 니모닉 정보를 제공합니다. |
COleControl::OnGetDisplayString | 속성 값을 나타내는 문자열을 가져오기 위해 호출됩니다. |
COleControl::OnGetInPlaceMenu | 컨테이너 메뉴와 병합할 컨트롤 메뉴의 핸들을 요청합니다. |
COleControl::OnGetNaturalExtent | 제안된 크기 및 예텐트 모드 가장 가까운 컨트롤의 표시 크기를 검색하려면 재정의합니다. |
COleControl::OnGetPredefinedStrings | 속성에 대해 가능한 값을 나타내는 문자열을 반환합니다. |
COleControl::OnGetPredefinedValue | 미리 정의된 문자열에 해당하는 값을 반환합니다. |
COleControl::OnGetViewExtent | 컨트롤의 표시 영역 크기를 검색하려면 재정의합니다(2패스 드로잉을 사용하도록 설정하는 데 사용할 수 있습니다). |
COleControl::OnGetViewRect | 컨트롤의 크기를 특정 위치에서 시작하는 사각형으로 변환하려면 재정의합니다. |
COleControl::OnGetViewStatus | 컨트롤의 뷰 상태를 검색하려면 재정의합니다. |
COleControl::OnHideToolBars | 컨트롤이 UI 비활성화될 때 컨테이너에서 호출됩니다. |
COleControl::OnInactiveMouseMove | 마우스 포인터 아래의 비활성 컨트롤에 대한 컨테이너가 컨트롤에 메시지를 WM_MOUSEMOVE 디스패치하도록 재정의합니다. |
COleControl::OnInactiveSetCursor | 마우스 포인터 아래의 비활성 컨트롤에 대한 컨테이너가 컨트롤에 메시지를 WM_SETCURSOR 디스패치하도록 재정의합니다. |
COleControl::OnKeyDownEvent | 주식 KeyDown 이벤트가 발생한 후 호출됩니다. |
COleControl::OnKeyPressEvent | 주식 KeyPress 이벤트가 발생한 후 호출됩니다. |
COleControl::OnKeyUpEvent | 주식 KeyUp 이벤트가 발생한 후 호출됩니다. |
COleControl::OnMapPropertyToPage | 속성 편집에 사용할 속성 페이지를 나타냅니다. |
COleControl::OnMnemonic | 컨트롤의 니모닉 키를 누를 때 호출됩니다. |
COleControl::OnProperties | 컨트롤의 "속성" 동사가 호출될 때 호출됩니다. |
COleControl::OnQueryHitPoint | 컨트롤의 표시가 지정된 지점과 겹치는지 여부를 쿼리하도록 재정의합니다. |
COleControl::OnQueryHitRect | 컨트롤의 표시가 지정된 사각형의 점과 겹치는지 여부를 쿼리하도록 재정의합니다. |
COleControl::OnRenderData | 지정된 형식으로 데이터를 검색하기 위해 프레임워크에서 호출됩니다. |
COleControl::OnRenderFileData | 지정된 형식의 파일에서 데이터를 검색하기 위해 프레임워크에서 호출됩니다. |
COleControl::OnRenderGlobalData | 지정된 형식으로 전역 메모리에서 데이터를 검색하기 위해 프레임워크에서 호출됩니다. |
COleControl::OnResetState | 컨트롤의 속성을 기본값으로 다시 설정합니다. |
COleControl::OnSetClientSite | 호출된 컨트롤에 IOleControl::SetClientSite 알립니다. |
COleControl::OnSetData | 컨트롤의 데이터를 다른 값으로 바꿉니다. |
COleControl::OnSetExtent | 컨트롤의 익스텐트 변경 후 호출합니다. |
COleControl::OnSetObjectRects | 컨트롤의 차원이 변경된 후 호출됩니다. |
COleControl::OnShowToolBars | 컨트롤이 UI 활성화되었을 때 호출됩니다. |
COleControl::OnTextChanged | 주식 텍스트 또는 캡션 속성이 변경될 때 호출됩니다. |
COleControl::OnWindowlessMessage | 창 없는 컨트롤에 대한 창 메시지(마우스 및 키보드 메시지 이외의)를 처리합니다. |
COleControl::ParentToClient | 컨테이너의 원점을 기준으로 한 점을 컨트롤의 원점을 기준으로 한 지점으로 변환합니다. |
COleControl::PostModalDialog | 모달 대화 상자가 닫혔는지 컨테이너에 알합니다. |
COleControl::PreModalDialog | 모달 대화 상자가 표시될 예정임을 컨테이너에 알깁니다. |
COleControl::RecreateControlWindow | 컨트롤의 창을 삭제하고 다시 만듭니다. |
COleControl::Refresh | 컨트롤의 모양을 다시 칠합니다. |
COleControl::ReleaseCapture | 마우스 캡처를 해제합니다. |
COleControl::ReleaseDC | 창 없는 컨트롤 컨테이너의 표시 디바이스 컨텍스트를 해제합니다. |
COleControl::ReparentControlWindow | 컨트롤 창의 부모를 다시 설정합니다. |
COleControl::ResetStockProps | 주식 속성을 기본값으로 초기화 COleControl 합니다. |
COleControl::ResetVersion | 버전 번호를 지정된 값으로 초기화합니다. |
COleControl::ScrollWindow | 창 없는 컨트롤이 디스플레이의 현재 위치 활성 이미지 내에서 영역을 스크롤할 수 있습니다. |
COleControl::SelectFontObject | 디바이스 컨텍스트에 사용자 지정 글꼴 속성을 선택합니다. |
COleControl::SelectStockFont | 디바이스 컨텍스트에 스톡 글꼴 속성을 선택합니다. |
COleControl::SerializeExtent | 컨트롤의 표시 공간을 직렬화하거나 초기화합니다. |
COleControl::SerializeStockProps | 주식 속성을 직렬화하거나 초기화합니다 COleControl . |
COleControl::SerializeVersion | 컨트롤의 버전 정보를 직렬화하거나 초기화합니다. |
COleControl::SetAppearance | Stock Appearance 속성의 값을 설정합니다. |
COleControl::SetBackColor | Stock BackColor 속성의 값을 설정합니다. |
COleControl::SetBorderStyle | stock BorderStyle 속성의 값을 설정합니다. |
COleControl::SetCapture | 컨트롤의 컨테이너 창이 컨트롤을 대신하여 마우스 캡처를 소유하게 합니다. |
COleControl::SetControlSize | OLE 컨트롤의 위치와 크기를 설정합니다. |
COleControl::SetEnabled | stock Enabled 속성의 값을 설정합니다. |
COleControl::SetFocus | 컨트롤의 컨테이너 창이 컨트롤을 대신하여 입력 포커스를 소유하게 합니다. |
COleControl::SetFont | stock Font 속성의 값을 설정합니다. |
COleControl::SetForeColor | 주식 ForeColor 속성의 값을 설정합니다. |
COleControl::SetInitialSize | 컨테이너에 처음 표시될 때 OLE 컨트롤의 크기를 설정합니다. |
COleControl::SetModifiedFlag | 컨트롤의 수정된 상태를 변경합니다. |
COleControl::SetNotPermitted | 편집 요청이 실패했음을 나타냅니다. |
COleControl::SetNotSupported | 사용자가 컨트롤의 속성 값을 수정할 수 없도록 합니다. |
COleControl::SetRectInContainer | 컨트롤의 직사각형을 컨테이너를 기준으로 설정합니다. |
COleControl::SetText | Stock Text 또는 Caption 속성의 값을 설정합니다. |
COleControl::ThrowError | OLE 컨트롤에서 오류가 발생했음을 알 수 있습니다. |
COleControl::TransformCoords | 컨테이너와 컨트롤 간의 좌표 값을 변환합니다. |
COleControl::TranslateColor | OLE_COLOR 값을 COLORREF 값으로 변환합니다. |
COleControl::WillAmbientsBeValidDuringLoad | 다음에 컨트롤을 로드할 때 앰비언트 속성을 사용할 수 있는지 여부를 결정합니다. |
COleControl::WindowProc | 개체에 대한 Windows 프로시저를 COleControl 제공합니다. |
보호된 메서드
속성 | 설명 |
---|---|
COleControl::DrawContent | 컨트롤의 모양을 업데이트해야 하는 경우 프레임워크에서 호출됩니다. |
COleControl::DrawMetafile | 메타파일 디바이스 컨텍스트를 사용할 때 프레임워크에서 호출됩니다. |
COleControl::IsInvokeAllowed | 자동화 메서드 호출을 사용하도록 설정합니다. |
COleControl::SetInitialDataFormats | 컨트롤에서 지원하는 데이터 형식 목록을 초기화하기 위해 프레임워크에서 호출됩니다. |
설명
파생된 CWnd
이 클래스는 Windows 창 개체의 모든 기능과 OLE 관련 추가 기능(예: 이벤트 발생 및 메서드 및 속성을 지원하는 기능)을 상속합니다.
OLE 컨트롤을 OLE 컨테이너 애플리케이션에 삽입하고 양방향 이벤트 발생 시스템을 사용하여 컨테이너와 통신하고 메서드와 속성을 컨테이너에 노출할 수 있습니다. 표준 OLE 컨테이너는 OLE 컨트롤의 기본 기능만 지원합니다. OLE 컨트롤의 확장 기능을 지원할 수 없습니다. 이벤트 발생은 컨트롤에서 발생하는 특정 작업의 결과로 이벤트가 컨테이너로 전송될 때 발생합니다. 차례로 컨테이너는 C++ 클래스의 멤버 함수 및 데이터 멤버와 유사한 노출된 메서드 및 속성 집합을 사용하여 컨트롤과 통신합니다. 이 방법을 사용하면 개발자가 컨트롤의 모양을 제어하고 특정 작업이 발생할 때 컨테이너에 알릴 수 있습니다.
창 없는 컨트롤
OLE 컨트롤은 창 없이 현재 위치에서 활성 상태로 사용할 수 있습니다. 창 없는 컨트롤에는 다음과 같은 중요한 이점이 있습니다.
창 없는 컨트롤은 투명하고 직사각형이 아닐 수 있습니다.
창 없는 컨트롤은 개체의 인스턴스 크기 및 생성 시간을 줄입니다.
컨트롤에는 창이 필요하지 않습니다. 창에서 제공하는 서비스는 단일 공유 창(일반적으로 컨테이너)과 약간의 디스패치 코드를 통해 쉽게 제공할 수 있습니다. 창이 있는 것은 대부분 개체에 불필요한 복잡성입니다.
창 없는 활성화를 사용하는 경우 컨테이너(창이 있는)는 컨트롤의 자체 창에서 제공한 서비스를 제공합니다. 예를 들어 컨트롤이 키보드 포커스를 쿼리하거나, 마우스 캡처를 쿼리하거나, 디바이스 컨텍스트를 가져와야 하는 경우 이러한 작업은 컨테이너에서 관리됩니다. 창 없는 작업 멤버 함수는 COleControl
컨테이너에서 이러한 작업을 호출합니다.
창 없는 활성화를 사용하도록 설정하면 컨테이너는 입력 메시지를 컨트롤의 IOleInPlaceObjectWindowless
인터페이스(창 없는 지원을 위한 IOleInPlaceObject의 확장)에 위임합니다. COleControl
이 인터페이스의 구현은 마우스 좌표를 적절하게 조정한 후 컨트롤의 메시지 맵을 통해 이러한 메시지를 디스패치합니다. 메시지 맵에 해당 항목을 추가하여 일반 창 메시지와 같은 메시지를 처리할 수 있습니다.
창 없는 컨트롤에서는 항상 해당 멤버 함수 또는 관련 CWnd
Windows API 함수 대신 멤버 함수를 사용해야 COleControl
합니다.
OLE 컨트롤 개체는 활성화될 때만 창을 만들 수 있지만 비활성-활성 전환에 필요한 작업의 양이 올라가고 전환 속도가 느려집니다. 이 문제가 있는 경우가 있습니다. 예를 들어 텍스트 상자의 그리드를 고려해 보세요. 열을 위아래로 커서를 정렬할 때 각 컨트롤을 현재 위치에서 활성화한 다음 비활성화해야 합니다. 비활성/활성 전환 속도는 스크롤 속도에 직접 영향을 미칩니다.
OLE 컨트롤 프레임워크 개발에 대한 자세한 내용은 MFC ActiveX 컨트롤 및 개요: MFC ActiveX 컨트롤 프로그램 만들기 문서를 참조하세요. 창 없는 컨트롤과 깜박임 없는 컨트롤을 포함하여 OLE 컨트롤을 최적화하는 방법에 대한 자세한 내용은 MFC ActiveX 컨트롤: 최적화를 참조 하세요.
상속 계층 구조
COleControl
요구 사항
헤더: afxctl.h
COleControl::AmbientBackColor
앰비언트 BackColor 속성의 값을 반환합니다.
OLE_COLOR AmbientBackColor();
Return Value
컨테이너의 앰비언트 BackColor 속성(있는 경우)의 현재 값입니다. 속성이 지원되지 않으면 이 함수는 시스템 정의 Windows 배경색을 반환합니다.
설명
앰비언트 BackColor 속성은 모든 컨트롤에서 사용할 수 있으며 컨테이너에 의해 정의됩니다. 컨테이너는 이 속성을 지원할 필요가 없습니다.
COleControl::AmbientDisplayName
컨테이너가 컨트롤에 할당한 이름은 사용자에게 표시되는 오류 메시지에 사용할 수 있습니다.
CString AmbientDisplayName();
Return Value
OLE 컨트롤의 이름입니다. 기본값은 길이가 0 인 문자열입니다.
설명
컨테이너는 이 속성을 지원할 필요가 없습니다.
COleControl::AmbientFont
앰비언트 글꼴 속성의 값을 반환합니다.
LPFONTDISP AmbientFont();
Return Value
컨테이너의 앰비언트 글꼴 디스패치 인터페이스에 대한 포인터입니다. 기본값은 NULL입니다. 반환이 NULL과 같지 않은 경우 IUnknown::Release 멤버 함수를 호출하여 글꼴을 해제 해야 합니다.
설명
앰비언트 글꼴 속성은 컨테이너에 의해 정의되며 모든 컨트롤에서 사용할 수 있습니다. 컨테이너는 이 속성을 지원할 필요가 없습니다.
COleControl::AmbientForeColor
앰비언트 ForeColor 속성의 값을 반환합니다.
OLE_COLOR AmbientForeColor();
Return Value
컨테이너의 앰비언트 ForeColor 속성(있는 경우)의 현재 값입니다. 지원되지 않는 경우 이 함수는 시스템 정의 Windows 텍스트 색을 반환합니다.
설명
앰비언트 ForeColor 속성은 모든 컨트롤에서 사용할 수 있으며 컨테이너에 의해 정의됩니다. 컨테이너는 이 속성을 지원할 필요가 없습니다.
COleControl::AmbientLocaleID
컨테이너의 로캘 ID를 반환합니다.
LCID AmbientLocaleID();
Return Value
컨테이너의 LocaleID 속성 값(있는 경우)입니다. 이 속성이 지원되지 않으면 이 함수는 0을 반환합니다.
설명
컨트롤은 LocaleID를 사용하여 특정 로캘에 대한 사용자 인터페이스를 조정할 수 있습니다. 컨테이너는 이 속성을 지원할 필요가 없습니다.
COleControl::AmbientAppearance
컨트롤 개체의 현재 모양 설정을 검색합니다.
short AmbientAppearance();
Return Value
컨트롤의 모양:
0 플랫 모양
1 3D 모양
설명
이 함수를 호출하여 컨트롤에 대한 DISPID_AMBIENT_APPEARANCE 속성의 현재 값을 검색합니다.
COleControl::AmbientScaleUnits
컨테이너에서 사용하는 단위의 형식을 반환합니다.
CString AmbientScaleUnits();
Return Value
컨테이너의 앰비언트 ScaleUnits를 포함하는 문자열입니다. 이 속성이 지원되지 않으면 이 함수는 길이가 0인 문자열을 반환합니다.
설명
컨테이너의 앰비언트 ScaleUnits 속성을 사용하여 선택한 단위(예: 트립 또는 센티미터)로 레이블이 지정된 위치 또는 차원을 표시할 수 있습니다. 컨테이너는 이 속성을 지원할 필요가 없습니다.
COleControl::AmbientShowGrabHandles
컨테이너가 활성 상태일 때 컨트롤이 자체적으로 잡기 핸들을 표시할 수 있도록 허용하는지 여부를 결정합니다.
BOOL AmbientShowGrabHandles();
Return Value
잡기 핸들을 표시해야 하는 경우 0이 아닌 경우 그렇지 않으면 0입니다. 이 속성이 지원되지 않으면 이 함수는 0이 아닌 값을 반환합니다.
설명
컨테이너는 이 속성을 지원할 필요가 없습니다.
COleControl::AmbientShowHatching
UI가 활성 상태일 때 컨테이너가 빗살 무늬 패턴으로 컨트롤을 표시할 수 있는지 여부를 결정합니다.
BOOL AmbientShowHatching();
Return Value
빗살 무늬를 표시해야 하는 경우 0이 아닌 경우 그렇지 않으면 0입니다. 이 속성이 지원되지 않으면 이 함수는 0이 아닌 값을 반환합니다.
설명
컨테이너는 이 속성을 지원할 필요가 없습니다.
COleControl::AmbientTextAlign
컨트롤 컨테이너에서 기본 설정되는 앰비언트 텍스트 맞춤을 결정합니다.
short AmbientTextAlign();
Return Value
컨테이너의 앰비언트 TextAlign 속성의 상태입니다. 이 속성이 지원되지 않으면 이 함수는 0을 반환합니다.
다음은 유효한 반환 값 목록입니다.
반환 값 | 의미 |
---|---|
0 | 일반 맞춤(오른쪽의 숫자, 왼쪽의 텍스트). |
1 | 왼쪽 양쪽 맞춤 |
2 | 가운데 맞춤 |
3 | 오른쪽 양쪽 맞춤 |
설명
이 속성은 포함된 모든 컨트롤에서 사용할 수 있으며 컨테이너에 의해 정의됩니다. 컨테이너는 이 속성을 지원할 필요가 없습니다.
COleControl::AmbientUIDead
컨테이너가 컨트롤이 사용자 인터페이스 작업에 응답하도록 할 것인지 여부를 결정합니다.
BOOL AmbientUIDead();
Return Value
컨트롤이 사용자 인터페이스 작업에 응답해야 하는 경우 0이 아닌 경우 그렇지 않으면 0입니다. 이 속성이 지원되지 않으면 이 함수는 0을 반환합니다.
설명
예를 들어 컨테이너는 디자인 모드에서 이를 TRUE로 설정할 수 있습니다.
COleControl::AmbientUserMode
컨테이너가 디자인 모드인지 사용자 모드인지 확인합니다.
BOOL AmbientUserMode();
Return Value
컨테이너가 사용자 모드인 경우 0이 아닌 경우 그렇지 않으면 0(디자인 모드)입니다. 이 속성이 지원되지 않으면 이 함수는 TRUE를 반환합니다.
설명
예를 들어 컨테이너는 디자인 모드에서 이를 FALSE로 설정할 수 있습니다.
COleControl::BoundPropertyChanged
바인딩된 속성 값이 변경되었음을 알립니다.
void BoundPropertyChanged(DISPID dispid);
매개 변수
dispid
컨트롤의 바인딩된 속성에 대한 디스패치 ID입니다.
설명
속성 Set 메서드를 통해 변경이 수행되지 않은 경우에도 속성 값이 변경될 때마다 호출해야 합니다. 멤버 변수에 매핑되는 바인딩된 속성에 특히 유의하세요. 이러한 멤버 변수가 변경 BoundPropertyChanged
될 때마다 호출해야 합니다.
COleControl::BoundPropertyRequestEdit
컨트롤에서 IPropertyNotifySink
제공하는 바인딩된 속성 값을 변경하기 위해 인터페이스에서 권한을 요청합니다.
BOOL BoundPropertyRequestEdit(DISPID dispid);
매개 변수
dispid
컨트롤의 바인딩된 속성에 대한 디스패치 ID입니다.
Return Value
변경이 허용되는 경우 0이 아닌 경우 그렇지 않으면 0입니다. 기본값은 0이 아닌 값입니다.
설명
사용 권한이 거부되면 컨트롤에서 속성 값을 변경할 수 없습니다. 이 작업은 속성 값을 변경하려고 시도한 작업을 무시하거나 실패하여 수행할 수 있습니다.
COleControl::ClientToParent
pPoint의 좌표를 부모 좌표로 변환합니다.
virtual void ClientToParent(
LPCRECT lprcBounds,
LPPOINT pPoint) const;
매개 변수
lprcBounds
컨테이너 내의 OLE 컨트롤 경계에 대한 포인터입니다. 클라이언트 영역이 아니라 테두리 및 스크롤 막대를 포함한 전체 컨트롤의 영역입니다.
pPoint
부모(컨테이너)의 좌표로 변환할 OLE 클라이언트 영역 지점에 대한 포인터입니다.
설명
입력 에서 pPoint 는 OLE 컨트롤의 클라이언트 영역 원본(컨트롤의 클라이언트 영역 왼쪽 위 모서리)을 기준으로 합니다. 출력 에서 pPoint 는 부모(컨테이너의 왼쪽 위 모서리)의 원본을 기준으로 합니다.
COleControl::ClipCaretRect
겹치는 불투명 개체로 완전히 또는 부분적으로 덮인 경우 캐리트 사각형을 조정합니다.
BOOL ClipCaretRect(LPRECT lpRect);
매개 변수
lpRect
입력 시 조정할 캐리트 영역을 포함하는 RECT 구조체에 대한 포인터입니다. 출력 시 조정된 캐리트 영역이거나, 캐리트 사각형이 완전히 덮인 경우 NULL입니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
캐리트는 일반적으로 텍스트 또는 그래픽을 삽입할 위치를 나타내는 깜박이는 선, 블록 또는 비트맵입니다.
창 없는 개체는 겹치는 개체에 의해 캐럿이 부분적으로 또는 완전히 숨겨져 있는지 먼저 확인하지 않고는 캐럿을 안전하게 표시할 수 없습니다. 이를 가능하게 하기 위해 개체를 사용하여 ClipCaretRect
캐럿을 조정(축소)하여 클리핑 영역에 맞도록 할 수 있습니다.
캐리트를 만드는 개체는 캐리트 사각형 ClipCaretRect
을 제출하고 조정된 사각형을 캐리트에 사용해야 합니다. 캐리트가 완전히 숨겨져 있으면 이 메서드는 FALSE를 반환하고 이 경우 캐리트가 전혀 표시되지 않아야 합니다.
COleControl::COleControl
COleControl
개체를 생성합니다.
COleControl();
설명
이 함수는 일반적으로 직접 호출되지 않습니다. 대신 OLE 컨트롤은 일반적으로 클래스 팩터리에 의해 생성됩니다.
COleControl::ControlInfoChanged
컨트롤에서 지원하는 니모닉 집합이 변경되면 이 함수를 호출합니다.
void ControlInfoChanged();
설명
이 알림을 받으면 컨트롤의 컨테이너는 IOleControl::GetControlInfo를 호출하여 새 니모닉 집합을 가져옵니다. 컨테이너는 이 알림에 응답할 필요가 없습니다.
COleControl::DisplayError
스톡 오류 이벤트가 처리된 후 프레임워크에서 호출됩니다(이벤트 처리기가 오류 표시를 표시하지 않는 한).
virtual void DisplayError(
SCODE scode,
LPCTSTR lpszDescription,
LPCTSTR lpszSource,
LPCTSTR lpszHelpFile,
UINT nHelpID);
매개 변수
scode
보고할 상태 코드 값입니다. 가능한 코드의 전체 목록은 ActiveX 컨트롤: 고급 항목 문서를 참조하세요.
lpszDescription
보고되는 오류에 대한 설명입니다.
lpszSource
오류를 생성하는 모듈의 이름입니다(일반적으로 OLE 컨트롤 모듈의 이름).
lpszHelpFile
오류에 대한 설명을 포함하는 도움말 파일의 이름입니다.
nHelpID
보고되는 오류의 도움말 컨텍스트 ID입니다.
설명
기본 동작은 lpszDescription에 포함된 오류에 대한 설명이 포함된 메시지 상자를 표시합니다.
오류가 표시되는 방법을 사용자 지정하려면 이 함수를 재정의합니다.
COleControl::DoClick
컨트롤에서 마우스 클릭 동작을 시뮬레이션합니다.
void DoClick();
설명
재정의 가능한 COleControl::OnClick
멤버 함수가 호출되고 컨트롤에서 지원하는 경우 stock Click 이벤트가 발생합니다.
이 함수는 기본 클래스에서 COleControl
DoClick이라는 스톡 메서드로 지원됩니다. 자세한 내용은 ActiveX 컨트롤: 메서드 문서를 참조하세요.
COleControl::DoPropExchange
스트림 또는 속성 집합과 같은 영구 스토리지 표현에서 컨트롤을 로드하거나 저장할 때 프레임워크에서 호출됩니다.
virtual void DoPropExchange(CPropExchange* pPX);
매개 변수
pPX
CPropExchange
개체에 대한 포인터입니다. 프레임워크는 해당 방향을 포함하여 속성 교환의 컨텍스트를 설정하기 위해 이 개체를 제공합니다.
설명
이 함수는 일반적으로 PX_ 함수 패밀리를 호출하여 OLE 컨트롤의 특정 사용자 정의 속성을 로드하거나 저장합니다.
제어 마법사를 사용하여 OLE 컨트롤 프로젝트를 만든 경우 이 함수의 재정의된 버전은 기본 클래스 함수COleControl::DoPropExchange
를 호출하여 지원되는 COleControl
스톡 속성을 직렬화합니다. OLE 컨트롤에 사용자 정의 속성을 추가할 때 새 속성을 직렬화하기 위해 이 함수를 수정해야 합니다. serialization에 대한 자세한 내용은 ActiveX 컨트롤: Serialize 문서를 참조하세요.
COleControl::DoSuperclassPaint
Windows 컨트롤에서 서브클래스된 OLE 컨트롤을 다시 그립니다.
void DoSuperclassPaint(
CDC* pDC,
const CRect& rcBounds);
매개 변수
pDC
컨트롤 컨테이너의 디바이스 컨텍스트에 대한 포인터입니다.
rcBounds
컨트롤을 그릴 영역입니다.
설명
비활성 OLE 컨트롤의 그리기를 제대로 처리하려면 이 함수를 호출합니다. 이 함수는 OLE 컨트롤이 Windows 컨트롤을 서브클래싱하고 컨트롤의 함수에서 OnDraw
호출해야 하는 경우에만 사용해야 합니다.
이 함수 및 Windows 컨트롤 서브클래싱에 대한 자세한 내용은 ActiveX 컨트롤: Windows 컨트롤 서브클래싱 문서를 참조하세요.
COleControl::DrawContent
컨트롤의 모양을 업데이트해야 하는 경우 프레임워크에서 호출됩니다.
void DrawContent(
CDC* pDC,
CRect& rc);
매개 변수
pDC
디바이스 컨텍스트에 대한 포인터입니다.
rc
그릴 사각형 영역입니다.
설명
이 함수는 재정의 가능한 함수를 직접 호출합니다 OnDraw
.
COleControl::DrawMetafile
메타파일 디바이스 컨텍스트를 사용할 때 프레임워크에서 호출됩니다.
void DrawMetafile(
CDC* pDC,
CRect& rc);
매개 변수
pDC
메타파일 디바이스 컨텍스트에 대한 포인터입니다.
rc
그릴 사각형 영역입니다.
COleControl::EnableSimpleFrame
OLE 컨트롤에 대한 간단한 프레임 특성을 사용하도록 설정합니다.
void EnableSimpleFrame();
설명
이 특성을 사용하면 컨트롤이 다른 컨트롤의 시각적 포함을 지원할 수 있지만 실제 OLE 포함은 지원되지 않습니다. 예를 들어 내부에 여러 컨트롤이 있는 그룹 상자가 있습니다. 이러한 컨트롤은 OLE가 포함되지 않지만 동일한 그룹 상자에 있습니다.
COleControl::ExchangeExtent
컨트롤의 익스텐트 상태(HIMETRIC 단위의 차원)를 직렬화하거나 초기화합니다.
BOOL ExchangeExtent(CPropExchange* pPX);
매개 변수
pPX
CPropExchange 개체에 대한 포인터입니다. 프레임워크는 해당 방향을 포함하여 속성 교환의 컨텍스트를 설정하기 위해 이 개체를 제공합니다.
Return Value
함수가 성공한 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
이 함수는 일반적으로 기본 구현에 의해 호출됩니다 COleControl::DoPropExchange
.
COleControl::ExchangeStockProps
컨트롤의 스톡 속성 상태를 직렬화하거나 초기화합니다.
void ExchangeStockProps(CPropExchange* pPX);
매개 변수
pPX
CPropExchange 개체에 대한 포인터입니다. 프레임워크는 해당 방향을 포함하여 속성 교환의 컨텍스트를 설정하기 위해 이 개체를 제공합니다.
설명
이 함수는 일반적으로 기본 구현에 의해 호출됩니다 COleControl::DoPropExchange
.
COleControl::ExchangeVersion
컨트롤의 버전 정보의 상태를 직렬화하거나 초기화합니다.
BOOL ExchangeVersion(
CPropExchange* pPX,
DWORD dwVersionDefault,
BOOL bConvert = TRUE);
매개 변수
pPX
CPropExchange
개체에 대한 포인터입니다. 프레임워크는 해당 방향을 포함하여 속성 교환의 컨텍스트를 설정하기 위해 이 개체를 제공합니다.
dwVersionDefault
컨트롤의 현재 버전 번호입니다.
bConvert
영구 데이터를 저장할 때 최신 형식으로 변환할지 또는 로드된 것과 동일한 형식으로 유지 관리해야 하는지 여부를 나타냅니다.
Return Value
함수의 0이 아닌 값이 성공했습니다. 그렇지 않으면 0입니다.
설명
일반적으로 컨트롤의 재정 COleControl::DoPropExchange
의에 의해 호출되는 첫 번째 함수입니다. 로드할 때 이 함수는 영구 데이터의 버전 번호를 읽고 그에 따라 CPropExchange 개체의 버전 특성을 설정합니다. 저장할 때 이 함수는 영구 데이터의 버전 번호를 씁니다.
지속성 및 버전 관리에 대한 자세한 내용은 ActiveX 컨트롤: Serialize 문서를 참조하세요.
COleControl::FireClick
활성 컨트롤을 마우스로 클릭할 때 프레임워크에서 호출됩니다.
void FireClick();
설명
이 이벤트가 사용자 지정 이벤트로 정의된 경우 이벤트가 발생하는 시기를 결정합니다.
Click 이벤트가 자동으로 실행되려면 컨트롤의 이벤트 맵에 스톡 클릭 이벤트가 정의되어야 합니다.
COleControl::FireDblClick
활성 컨트롤을 마우스로 두 번 클릭할 때 프레임워크에서 호출됩니다.
void FireDblClick();
설명
이 이벤트가 사용자 지정 이벤트로 정의된 경우 이벤트가 발생하는 시기를 결정합니다.
DblClick 이벤트가 자동으로 발생하려면 컨트롤의 이벤트 맵에 스톡 DblClick 이벤트가 정의되어야 합니다.
COleControl::FireError
주식 오류 이벤트가 발생합니다.
void FireError(
SCODE scode,
LPCTSTR lpszDescription,
UINT nHelpID = 0);
매개 변수
scode
보고할 상태 코드 값입니다. 가능한 코드의 전체 목록은 ActiveX 컨트롤: 고급 항목 문서를 참조하세요.
lpszDescription
보고되는 오류에 대한 설명입니다.
nHelpID
보고되는 오류의 도움말 ID입니다.
설명
이 이벤트는 코드의 적절한 위치에서 컨트롤 내에서 오류가 발생했음을 알리는 방법을 제공합니다. Click 또는 MouseMove와 같은 다른 주식 이벤트와 달리 프레임워크에서 오류가 발생하지 않습니다.
속성 get 함수, 속성 집합 함수 또는 자동화 메서드 중에 발생하는 오류를 보고하려면 COleControl::ThrowError를 호출합니다.
OLE 컨트롤의 Stock Error 이벤트 구현에서는 SCODE 값을 사용합니다. 컨트롤이 이 이벤트를 사용하고 Visual Basic 4.0에서 사용하도록 의도된 경우 SCODE 값이 Visual Basic에서 지원되지 않으므로 오류가 발생합니다.
이 문제를 해결하려면 컨트롤의 SCODE 매개 변수를 수동으로 변경합니다. 에 대한 long
ODL 파일 또한 SCODE 매개 변수를 사용하는 사용자 지정 이벤트, 메서드 또는 속성도 동일한 문제를 발생합니다.
COleControl::FireEvent
원하는 수의 인수를 사용하여 컨트롤에서 사용자 정의 이벤트를 발생합니다.
void AFX_CDECL FireEvent(
DISPID dispid,
BYTE* pbParams,
...);
매개 변수
dispid
발생될 이벤트의 디스패치 ID입니다.
pbParams
이벤트의 매개 변수 형식에 대한 설명자입니다.
설명
일반적으로 이 함수는 직접 호출해서는 안 됩니다. 대신 컨트롤 클래스 선언의 이벤트 맵 섹션에서 이벤트 발생 함수를 호출합니다.
pbParams 인수는 공백으로 구분된 VTS_ 목록입니다. 공백(쉼표가 아님)으로 구분된 이러한 값 중 하나 이상이 함수의 매개 변수 목록을 지정합니다. 가능한 값은 다음과 같습니다.
기호 | 매개 변수 형식 |
---|---|
VTS_COLOR | OLE_COLOR |
VTS_FONT | IFontDisp* |
VTS_HANDLE | HWND |
VTS_PICTURE | IPictureDisp* |
VTS_OPTEXCLUSIVE | OLE_OPTEXCLUSIVE* |
VTS_TRISTATE | OLE_TRISTATE |
VTS_XPOS_HIMETRIC | OLE_XPOS_HIMETRIC |
VTS_YPOS_HIMETRIC | OLE_YPOS_HIMETRIC |
VTS_XPOS_PIXELS | OLE_XPOS_PIXELS |
VTS_YPOS_PIXELS | OLE_YPOS_PIXELS |
VTS_XSIZE_PIXELS | OLE_XSIZE_PIXELS |
VTS_YSIZE_PIXELS | OLE_XSIZE_PIXELS |
VTS_XSIZE_HIMETRIC | OLE_XSIZE_HIMETRIC |
VTS_YSIZE_HIMETRIC | OLE_XSIZE_HIMETRIC |
참고 항목
변형 데이터 상수에 대한 포인터를 제공하는 VTS_FONT 및 VTS_PICTURE 제외하고 모든 변형 형식에 대해 추가 변형 상수가 정의되었습니다. 이러한 상수는 VTS_P<CONSTANT-NAME> 규칙을 사용하여 명명됩니다. 예를 들어 VTS_PCOLOR VTS_COLOR 상수에 대한 포인터입니다.
COleControl::FireKeyDown
컨트롤이 UI 활성 상태인 동안 키를 누를 때 프레임워크에서 호출됩니다.
void FireKeyDown(
USHORT* pnChar,
short nShiftState);
매개 변수
pnChar
누른 키의 가상 키 코드 값에 대한 포인터입니다. 표준 가상 키 코드 목록은 Winuser.h를 참조하세요.
nShiftState
다음 플래그의 조합을 포함합니다.
SHIFT_MASK 작업 중에 SHIFT 키를 눌렀습니다.
CTRL_MASK 작업 중에 Ctrl 키를 눌렀습니다.
ALT_MASK 작업 중에 ALT 키를 눌렀습니다.
설명
이 이벤트가 사용자 지정 이벤트로 정의된 경우 이벤트가 발생하는 시기를 결정합니다.
KeyDown 이벤트가 자동으로 실행되려면 컨트롤의 이벤트 맵에 스톡 KeyDown 이벤트가 정의되어야 합니다.
COleControl::FireKeyPress
사용자 지정 컨트롤이 컨테이너 내에서 UI 활성인 동안 키를 누르고 놓을 때 프레임워크에서 호출됩니다.
void FireKeyPress(USHORT* pnChar);
매개 변수
pnChar
누른 키의 문자 값에 대한 포인터입니다.
설명
이 이벤트가 사용자 지정 이벤트로 정의된 경우 이벤트가 발생하는 시기를 결정합니다.
이벤트의 수신자는 pnChar를 수정할 수 있습니다. 예를 들어 모든 소문자를 대문자로 변환합니다. 수정된 문자를 OnKeyPressEvent
검사하려면 재정의합니다.
KeyPress 이벤트가 자동으로 발생하려면 컨트롤의 이벤트 맵에 스톡 KeyPress 이벤트가 정의되어야 합니다.
COleControl::FireKeyUp
사용자 지정 컨트롤이 컨테이너 내에서 UI 활성인 동안 키가 해제될 때 프레임워크에서 호출됩니다.
void FireKeyUp(
USHORT* pnChar,
short nShiftState);
매개 변수
pnChar
릴리스된 키의 가상 키 코드 값에 대한 포인터입니다. 표준 가상 키 코드 목록은 Winuser.h를 참조하세요.
nShiftState
다음 플래그의 조합을 포함합니다.
SHIFT_MASK 작업 중에 SHIFT 키를 눌렀습니다.
CTRL_MASK 작업 중에 Ctrl 키를 눌렀습니다.
ALT_MASK 작업 중에 ALT 키를 눌렀습니다.
설명
이 이벤트가 사용자 지정 이벤트로 정의된 경우 이벤트가 발생하는 시기를 결정합니다.
KeyUp 이벤트가 자동으로 실행되려면 컨트롤의 이벤트 맵에 스톡 KeyUp 이벤트가 정의되어야 합니다.
COleControl::FireMouseDown
활성 사용자 지정 컨트롤 위에 마우스 단추를 누를 때 프레임워크에서 호출됩니다.
void FireMouseDown(
short nButton,
short nShiftState,
OLE_XPOS_PIXELS x,
OLE_YPOS_PIXELS y);
매개 변수
nButton
누른 마우스 단추의 숫자 값입니다. 다음 값 중 하나를 포함할 수 있습니다.
LEFT_BUTTON 마우스 왼쪽 단추를 눌렀습니다.
MIDDLE_BUTTON 마우스 가운데 단추를 눌렀습니다.
RIGHT_BUTTON 마우스 오른쪽 단추를 눌렀습니다.
nShiftState
다음 플래그의 조합을 포함합니다.
SHIFT_MASK 작업 중에 SHIFT 키를 눌렀습니다.
CTRL_MASK 작업 중에 Ctrl 키를 눌렀습니다.
ALT_MASK 작업 중에 ALT 키를 눌렀습니다.
x
마우스 단추를 누를 때 커서의 x 좌표입니다. 좌표는 컨트롤 창의 왼쪽 위 모서리를 기준으로 합니다.
y
마우스 단추를 누른 경우 커서의 y 좌표입니다. 좌표는 컨트롤 창의 왼쪽 위 모서리를 기준으로 합니다.
설명
이 이벤트가 사용자 지정 이벤트로 정의된 경우 이벤트가 발생하는 시기를 결정합니다.
MouseDown 이벤트가 자동으로 발생하려면 컨트롤의 이벤트 맵에 스톡 MouseDown 이벤트가 정의되어야 합니다.
COleControl::FireMouseMove
활성 사용자 지정 컨트롤을 통해 커서를 이동할 때 프레임워크에서 호출됩니다.
void FireMouseMove(
short nButton,
short nShiftState,
OLE_XPOS_PIXELS x,
OLE_YPOS_PIXELS y);
매개 변수
nButton
누른 마우스 단추의 숫자 값입니다. 다음 값의 조합을 포함합니다.
LEFT_BUTTON 작업 중에 마우스 왼쪽 단추를 눌렀습니다.
MIDDLE_BUTTON 마우스 가운데 단추를 누르는 동안 아래로 눌렀습니다.
RIGHT_BUTTON 마우스 오른쪽 단추가 실행 중에 아래로 눌렸습니다.
nShiftState
다음 플래그의 조합을 포함합니다.
SHIFT_MASK 작업 중에 SHIFT 키를 눌렀습니다.
CTRL_MASK 작업 중에 Ctrl 키를 눌렀습니다.
ALT_MASK 작업 중에 ALT 키를 눌렀습니다.
x
커서의 x 좌표입니다. 좌표는 컨트롤 창의 왼쪽 위 모서리를 기준으로 합니다.
y
커서의 y 좌표입니다. 좌표는 컨트롤 창의 왼쪽 위 모서리를 기준으로 합니다.
설명
이 이벤트가 사용자 지정 이벤트로 정의된 경우 이벤트가 발생하는 시기를 결정합니다.
MouseMove 이벤트가 자동으로 실행되려면 컨트롤의 이벤트 맵에 스톡 MouseMove 이벤트가 정의되어야 합니다.
COleControl::FireMouseUp
활성 사용자 지정 컨트롤을 통해 마우스 단추를 놓을 때 프레임워크에서 호출됩니다.
void FireMouseUp(
short nButton,
short nShiftState,
OLE_XPOS_PIXELS x,
OLE_YPOS_PIXELS y);
매개 변수
nButton
놓인 마우스 단추의 숫자 값입니다. 다음 값 중 하나를 가질 수 있습니다.
LEFT_BUTTON 마우스 왼쪽 단추가 해제되었습니다.
MIDDLE_BUTTON 마우스 가운데 단추가 해제되었습니다.
RIGHT_BUTTON 마우스 오른쪽 단추가 해제되었습니다.
nShiftState
다음 플래그의 조합을 포함합니다.
SHIFT_MASK 작업 중에 SHIFT 키를 눌렀습니다.
CTRL_MASK 작업 중에 Ctrl 키를 눌렀습니다.
ALT_MASK 작업 중에 ALT 키를 눌렀습니다.
x
마우스 단추를 놓을 때 커서의 x 좌표입니다. 좌표는 컨트롤 창의 왼쪽 위 모서리를 기준으로 합니다.
y
마우스 단추를 놓을 때 커서의 y 좌표입니다. 좌표는 컨트롤 창의 왼쪽 위 모서리를 기준으로 합니다.
설명
이 이벤트가 사용자 지정 이벤트로 정의된 경우 이벤트가 발생하는 시기를 결정합니다.
MouseUp 이벤트가 자동으로 발생하려면 컨트롤의 이벤트 맵에 스톡 MouseUp 이벤트가 정의되어야 합니다.
COleControl::FireReadyStateChange
준비 상태의 현재 값을 사용하여 이벤트를 발생합니다.
void FireReadyStateChange();
설명
준비 상태는 다음 값 중 하나일 수 있습니다.
속성 | 설명 |
---|---|
READYSTATE_UNINITIALIZED | 기본 초기화 상태 |
READYSTATE_LOADING | 컨트롤이 현재 해당 속성을 로드하고 있습니다. |
READYSTATE_LOADED | 컨트롤이 초기화되었습니다. |
READYSTATE_INTERACTIVE | 컨트롤에 대화형으로 사용할 수 있는 충분한 데이터가 있지만 모든 비동기 데이터가 아직 로드되지 않았습니다. |
READYSTATE_COMPLETE | 컨트롤에 모든 데이터가 있습니다. |
GetReadyState를 사용하여 컨트롤의 현재 준비 상태를 확인합니다.
InternalSetReadyState 는 준비 상태를 제공된 값으로 변경한 다음 FireReadyStateChange
호출합니다.
COleControl::GetActivationPolicy
인터페이스를 지원하는 컨트롤의 기본 활성화 동작을 IPointerInactive
변경합니다.
virtual DWORD GetActivationPolicy();
Return Value
POINTERINACTIVE 열거형의 플래그 조합입니다. 가능한 플래그는 다음과 같습니다.
속성 | 설명 |
---|---|
POINTERINACTIVE_ACTIVATEONENTRY | 마우스 이동 작업 중에 마우스가 개체에 들어갈 때 개체를 현재 위치로 활성화해야 합니다. |
POINTERINACTIVE_DEACTIVATEONLEAVE | 마우스 이동 작업 중에 마우스가 개체를 떠날 때 개체를 비활성화해야 합니다. |
POINTERINACTIVE_ACTIVATEONDRAG | 끌어서 놓기 작업 중에 마우스를 끌어서 놓을 때 개체를 현재 위치로 활성화해야 합니다. |
설명
인터페이스를 IPointerInactive
사용하도록 설정하면 컨테이너가 WM_SETCURSOR 위임하고 메시지를 WM_MOUSEMOVE. COleControl
이 인터페이스의 구현은 마우스 좌표를 적절하게 조정한 후 컨트롤의 메시지 맵을 통해 이러한 메시지를 디스패치합니다.
컨테이너가 지원되는 비활성 개체 IPointerInactive
위에 마우스 포인터가 있는 WM_SETCURSOR 또는 WM_MOUSEMOVE 메시지를 받을 때마다 인터페이스를 호출 GetActivationPolicy
하고 POINTERINACTIVE 열거형에서 플래그를 반환해야 합니다.
메시지 맵에 해당 항목을 추가하여 일반 창 메시지와 마찬가지로 이러한 메시지를 처리할 수 있습니다. 처리기에서 해당 값이 m_hWnd
NULL이 아닌지 먼저 확인하지 않고 멤버 변수(또는 해당 변수를 사용하는 멤버 함수)를 사용하지 마세요.
마우스 커서를 설정하고/또는 마우스 이동 이벤트를 발생시키려는 개체(예: 특별한 시각적 피드백 제공)는 POINTERINACTIVE_ACTIVATEONENTRY 플래그를 반환하고 활성 상태일 때만 피드백을 그려야 합니다. 개체가 이 플래그를 반환하는 경우 컨테이너는 해당 플래그를 즉시 활성화한 다음 호출 GetActivationPolicy
을 트리거한 것과 동일한 메시지를 전달해야 합니다.
POINTERINACTIVE_ACTIVATEONENTRY 플래그와 POINTERINACTIVE_DEACTIVATEONLEAVE 플래그가 모두 반환되면 마우스가 개체 위에 있을 때만 개체가 활성화됩니다. POINTERINACTIVE_ACTIVATEONENTRY 플래그만 반환되면 마우스가 개체에 처음 들어갈 때만 개체가 활성화됩니다.
비활성 컨트롤이 OLE 끌어서 놓기 작업의 대상이 되도록 할 수도 있습니다. 이렇게 하려면 사용자가 개체를 끌어 놓기 대상으로 등록할 수 있도록 컨트롤을 활성화해야 합니다. 끌기 중에 활성화를 수행하려면 POINTERINACTIVE_ACTIVATEONDRAG 플래그를 반환합니다.
DWORD CMyAxCtrl::GetActivationPolicy()
{
return POINTERINACTIVE_ACTIVATEONDRAG;
}
전달된 GetActivationPolicy
정보는 컨테이너에 의해 캐시되어서는 안 됩니다. 대신 마우스가 비활성 개체에 들어갈 때마다 이 메서드를 호출해야 합니다.
비활성 개체가 마우스를 입력할 때 현재 위치 활성화를 요청하지 않는 경우 해당 컨테이너는 마우스 포인터가 개체 위에 유지되는 한 OnInactiveSetCursor를 호출하여 후속 WM_SETCURSOR 메시지를 이 개체에 디스패치해야 합니다.
일반적으로 인터페이스를 IPointerInactive
사용하도록 설정하면 컨트롤이 항상 마우스 메시지를 처리할 수 있게 됩니다. 인터페이스를 지원하지 IPointerInactive
않는 컨테이너에서 이 동작을 얻으려면 컨트롤이 표시될 때 항상 활성화되어야 합니다. 즉, 컨트롤에 기타 플래그 중 OLEMISC_ACTIVATEWHENVISIBLE 플래그가 있어야 합니다. 그러나 지원되는 IPointerInactive
컨테이너에서 이 플래그가 적용되지 않도록 하려면 OLEMISC_IGNOREACTIVATEWHENVISIBLE 플래그를 지정할 수도 있습니다.
static const DWORD BASED_CODE _dwMyOleMisc =
OLEMISC_ACTIVATEWHENVISIBLE |
OLEMISC_IGNOREACTIVATEWHENVISIBLE |
OLEMISC_SETCLIENTSITEFIRST |
OLEMISC_INSIDEOUT |
OLEMISC_CANTLINKINSIDE |
OLEMISC_RECOMPOSEONRESIZE;
COleControl::GetAmbientProperty
컨테이너의 앰비언트 속성 값을 가져옵니다.
BOOL GetAmbientProperty(
DISPID dispid,
VARTYPE vtProp,
void* pvProp);
매개 변수
dwDispid
원하는 앰비언트 속성의 디스패치 ID입니다.
vtProp
pvProp에서 반환할 값의 형식을 지정하는 변형 형식 태그입니다.
pvProp
속성 값 또는 반환 값을 받을 변수의 주소에 대한 포인터입니다. 이 포인터의 실제 형식은 vtProp에서 지정한 형식과 일치해야 합니다.
vtProp | pvProp 형식 |
---|---|
VT_BOOL | BOOL* |
VT_BSTR | CString* |
VT_I2 | short* |
VT_I4 | long* |
VT_R4 | float* |
VT_R8 | double* |
VT_CY | CY* |
VT_COLOR | OLE_COLOR* |
VT_DISPATCH | LPDISPATCH* |
VT_FONT | LPFONTDISP* |
Return Value
앰비언트 속성이 지원되는 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
앰비언트 DisplayName 및 ScaleUnits 속성을 검색하는 데 사용하는 GetAmbientProperty
경우 vtProp를 VT_BSTR 설정하고 pvProp을 .로 CString*
설정합니다. 앰비언트 글꼴 속성을 검색하는 경우 vtProp를 VT_FONT 설정하고 pvProp을 LPFONTDISP*로 설정합니다.
AmbientBackColor 및 AmbientFont와 같은 일반적인 앰비언트 속성에 대한 함수가 이미 제공되었습니다.
COleControl::GetAppearance
컨트롤의 Stock Appearance 속성의 Get 함수를 구현합니다.
short GetAppearance ();
Return Value
반환 값은 성공하면 현재 모양 설정을 (VT_I2) 값으로 short
지정합니다. 컨트롤의 모양이 평평한 경우 이 값은 0이고 컨트롤의 모양이 3D이면 1입니다.
COleControl::GetBackColor
컨트롤의 Stock BackColor 속성의 Get 함수를 구현합니다.
OLE_COLOR GetBackColor();
Return Value
반환 값은 성공하면 현재 배경색을 OLE_COLOR 값으로 지정합니다. 이 값은 호출을 사용하여 COLORREF 값으로 변환할 수 있습니다 TranslateColor
.
COleControl::GetBorderStyle
컨트롤의 stock BorderStyle 속성의 Get 함수를 구현합니다.
short GetBorderStyle();
Return Value
컨트롤에 표준 테두리가 있으면 1입니다. 컨트롤에 테두리가 없으면 0입니다.
COleControl::GetCapture
개체에 COleControl
마우스 캡처가 있는지 여부를 확인합니다.
CWnd* GetCapture();
Return Value
컨트롤이 활성화되고 창이 없는 경우 컨트롤에 현재 마우스 캡처(컨트롤의 컨테이너에 의해 결정됨)가 있는지 또는 캡처가 없는 경우 NULL을 반환 this
합니다.
그렇지 않으면 마우스 캡처가 있는 개체(예: )를 CWnd::GetCapture
반환 CWnd
합니다.
설명
SetCapture가 호출될 때 활성화된 창 없는 컨트롤이 마우스 캡처를 받습니다.
COleControl::GetClassID
컨트롤의 OLE 클래스 ID를 검색하기 위해 프레임워크에서 호출됩니다.
virtual HRESULT GetClassID(LPCLSID pclsid) = 0;
매개 변수
pclsid
클래스 ID의 위치에 대한 포인터입니다.
Return Value
호출에 성공하지 못한 경우 0이 아닙니다. 그렇지 않으면 0입니다.
설명
일반적으로 IMPLEMENT_OLECREATE_EX 의해 구현됩니다.
COleControl::GetClientOffset
컨트롤의 사각형 영역의 왼쪽 위 모서리와 클라이언트 영역의 왼쪽 위 모퉁이 사이의 차이를 검색합니다.
virtual void GetClientOffset(long* pdxOffset, long* pdyOffset) const;
매개 변수
pdxOffset
OLE 컨트롤 클라이언트 영역의 가로 오프셋에 대한 포인터입니다.
pdyOffset
OLE 컨트롤 클라이언트 영역의 세로 오프셋에 대한 포인터입니다.
설명
OLE 컨트롤에는 컨테이너 내에 사각형 영역이 있습니다. 컨트롤의 클라이언트 영역은 테두리와 스크롤 막대를 제외한 컨트롤 영역입니다. 검색되는 GetClientOffset
오프셋은 컨트롤의 사각형 영역의 왼쪽 위 모서리와 클라이언트 영역의 왼쪽 위 모퉁이 간의 차이입니다. 컨트롤에 표준 테두리 및 스크롤 막대 이외의 비 클라이언트 요소가 있는 경우 이 멤버 함수를 재정의하여 오프셋을 지정합니다.
COleControl::GetClientRect
컨트롤의 클라이언트 영역 크기를 검색합니다.
virtual void GetClientRect(LPRECT lpRect) const;
매개 변수
lpRect
RECT
창 없는 컨트롤의 클라이언트 영역 크기를 포함하는 구조체에 대한 포인터입니다. 즉, 컨트롤의 크기에서 창 테두리, 프레임, 스크롤 막대 등을 뺀 값입니다. lpRect 매개 변수는 컨트롤의 위치가 아니라 컨트롤의 클라이언트 사각형 크기를 나타냅니다.
COleControl::GetClientSite
컨테이너 내의 현재 클라이언트 사이트에 대한 포인터에 대한 개체를 쿼리합니다.
LPOLECLIENTSITE GetClientSite();
Return Value
해당 컨테이너에 있는 컨트롤의 현재 클라이언트 사이트에 대한 포인터입니다.
설명
반환된 포인터는 .의 IOleClientSite
인스턴스를 가리킵니다. 컨테이너에 의해 구현되는 인터페이스는 IOleClientSite
개체의 컨텍스트 보기입니다. 여기서는 문서에 고정되고, 스토리지, 사용자 인터페이스 및 기타 리소스를 가져옵니다.
COleControl::GetControlFlags
컨트롤 플래그 설정을 검색합니다.
virtual DWORD GetControlFlags();
Return Value
ControlFlags 열거형에 있는 플래그의 ORed 조합입니다.
enum ControlFlags {
fastBeginPaint = 0x0001,
clipPaintDC = 0x0002,
pointerInactive = 0x0004,
noFlickerActivate = 0x0008,
windowlessActivate = 0x0010,
canOptimizeDraw = 0x0020,
};
설명
기본적으로 GetControlFlags
반환 fastBeginPaint | clipPaintDC
합니다.
속성 | 설명 |
---|---|
fastBeginPaint |
설정된 경우 BeginPaint API 대신 OLE 컨트롤에 맞게 조정된 begin-paint 함수를 사용합니다(기본적으로 설정됨). |
clipPaintDC |
설정하지 않으면 호출 IntersectClipRect COleControl 을 사용하지 않도록 설정하고 약간의 속도 이점을 얻습니다. 창 없는 활성화를 사용하는 경우 플래그가 적용되지 않습니다. |
pointerInactive |
설정된 경우 기본적으로 사용하지 않도록 설정되는 인터페이스의 구현을 사용하도록 설정하여 COleControl 컨트롤이 IPointerInactive 비활성 상태인 동안 마우스 상호 작용을 제공합니다. |
noFlickerActivate |
설정된 경우 추가 그리기 작업 및 함께 제공되는 시각적 깜박임이 제거됩니다. 컨트롤이 비활성 상태와 활성 상태에서 동일하게 그릴 때 사용합니다. 창 없는 활성화를 사용하는 경우 플래그가 적용되지 않습니다. |
windowlessActivate |
설정된 경우 컨트롤이 창 없는 활성화를 사용한다는 것을 나타냅니다. |
canOptimizeDraw |
설정된 경우 컨테이너가 지원하는 경우 컨트롤이 최적화된 그리기를 수행한다는 것을 나타냅니다. |
OLE 컨트롤 및 기타 최적화에 대한 GetControlFlags
자세한 내용은 ActiveX 컨트롤: 최적화를 참조 하세요.
COleControl::GetControlSize
OLE 컨트롤 창의 크기를 검색합니다.
void GetControlSize(
int* pcx,
int* pcy);
매개 변수
pcx
컨트롤의 너비를 픽셀 단위로 지정합니다.
pcy
컨트롤의 높이를 픽셀 단위로 지정합니다.
설명
컨트롤 창의 모든 좌표는 컨트롤의 왼쪽 위 모서리를 기준으로 합니다.
COleControl::GetDC
컨테이너에서 화면(또는 호환되는) 디바이스 컨텍스트를 가져오는 창 없는 개체를 제공합니다.
CDC* GetDC(
LPCRECT lprcRect = NULL,
DWORD dwFlags = OLEDC_PAINTBKGND);
매개 변수
lprcRect
창 없는 컨트롤이 컨트롤의 클라이언트 좌표에서 다시 그리려는 사각형에 대한 포인터입니다. NULL은 전체 개체의 익스텐트입니다.
dwFlags
디바이스 컨텍스트의 그리기 특성입니다. 선택 항목은 다음과 같습니다.
OLEDC_NODRAW 개체가 디바이스 컨텍스트를 사용하여 그리기를 수행하는 것이 아니라 디스플레이 디바이스에 대한 정보를 가져오기 위한 것임을 나타냅니다. 컨테이너는 추가 처리 없이 창의 DC를 전달하기만 하면 됩니다.
OLEDC_PAINTBKGND DC를 반환하기 전에 컨테이너가 배경을 그리는 것을 요청합니다. 개체가 투명한 배경의 영역을 다시 그리기 위해 DC를 요청하는 경우 이 플래그를 사용해야 합니다.
OLEDC_OFFSCREEN 개체가 화면에 복사되어야 하는 오프스크립 비트맵으로 렌더링하려는 경우 컨테이너에 알립니다. 개체가 수행하려는 그리기 작업에서 깜박임이 많이 발생하는 경우 이 플래그를 사용해야 합니다. 컨테이너는 이 요청을 자유롭게 적용할 수 있습니다. 그러나 이 플래그가 설정되지 않은 경우 컨테이너는 화면 DC를 다시 전달해야 합니다. 이렇게 하면 개체가 선택 영역 표시(XOR 작업을 통해)와 같은 직접 화면 작업을 수행할 수 있습니다.
Return Value
성공하면 컨테이너 CWnd
클라이언트 영역에 대한 표시 디바이스 컨텍스트에 대한 포인터이고, 그렇지 않으면 반환 값이 NULL입니다. 디스플레이 디바이스 컨텍스트는 후속 GDI 함수에서 컨테이너 창의 클라이언트 영역에 그리는 데 사용할 수 있습니다.
설명
그리기 후 컨텍스트를 해제하려면 ReleaseDC 멤버 함수를 호출해야 합니다. 호출 GetDC
할 때 개체는 자체 클라이언트 좌표에 그릴 사각형을 전달합니다. GetDC
는 컨테이너 클라이언트 영역의 좌표로 변환합니다. 개체는 GetClientRect를 사용하여 검색할 수 있는 크기인 자체 클라이언트 영역 사각형보다 큰 원하는 그리기 사각형을 요청해서는 안 됩니다. 이렇게 하면 개체가 의도치 않게 그리는 것을 방지할 수 있습니다.
COleControl::GetEnabled
컨트롤의 stock Enabled 속성의 Get 함수를 구현합니다.
BOOL GetEnabled();
Return Value
컨트롤을 사용하는 경우 0이 아닌 경우 그렇지 않으면 0입니다.
COleControl::GetExtendedControl
확장된 속성 집합을 사용하여 컨트롤을 나타내는 컨테이너에서 유지 관리하는 개체에 대한 포인터를 가져옵니다.
LPDISPATCH GetExtendedControl();
Return Value
컨테이너의 확장 컨트롤 개체에 대한 포인터입니다. 사용할 수 있는 개체가 없으면 값은 NULL입니다.
이 개체는 해당 IDispatch
인터페이스를 통해 조작할 수 있습니다. 개체에서 제공하는 다른 사용 가능한 인터페이스를 가져오는 데 사용할 QueryInterface
수도 있습니다. 그러나 개체가 특정 인터페이스 집합을 지원할 필요는 없습니다. 컨테이너 확장 컨트롤 개체의 특정 기능을 사용하면 컨트롤의 이식성이 다른 임의 컨테이너로 제한됩니다.
설명
이 함수를 호출하는 함수는 개체를 완료할 때 포인터를 해제합니다. 컨테이너는 이 개체를 지원할 필요가 없습니다.
COleControl::GetFocus
개체에 포커스가 COleControl
있는지 여부를 확인합니다.
CWnd* GetFocus();
Return Value
컨트롤이 활성화되고 창이 없는 경우 컨트롤에 현재 키보드 포커스가 있는 경우(컨트롤의 컨테이너에 의해 결정됨) NULL(포커스가 없는 경우)을 반환 this
합니다.
그렇지 않으면 포커스가 CWnd
있는 개체(예: )를 CWnd::GetFocus
반환합니다.
설명
SetFocus가 호출될 때 활성화된 창 없는 컨트롤이 포커스를 받습니다.
COleControl::GetFont
stock Font 속성의 Get 함수를 구현합니다.
LPFONTDISP GetFont();
Return Value
컨트롤의 stock Font 속성의 글꼴 디스패치 인터페이스에 대한 포인터입니다.
설명
호출자가 완료되면 개체를 해제해야 합니다. 컨트롤의 구현 내에서 컨트롤의 스톡 글꼴 개체에 액세스하는 데 사용합니다 InternalGetFont
. 컨트롤에서 글꼴을 사용하는 방법에 대한 자세한 내용은 ActiveX 컨트롤: ActiveX 컨트롤에서 글꼴 사용 문서를 참조하세요.
COleControl::GetFontTextMetrics
컨트롤이 소유한 개체 CFontHolder
에 대한 텍스트 메트릭을 측정합니다.
void GetFontTextMetrics(
LPTEXTMETRIC lptm,
CFontHolder& fontHolder);
매개 변수
lptm
TEXTMETRIC 구조체에 대한 포인터입니다 .
fontHolder
CFontHolder 개체에 대한 참조입니다.
설명
이러한 글꼴은 COleControl::SelectFontObject 함수를 사용하여 선택할 수 있습니다. GetFontTextMetrics
성공하면 글꼴에 대한 fontHolder
유효한 메트릭 정보를 사용하여 lptm에서 가리키는 구조를 초기화 TEXTMETRIC
하거나, 성공하지 못한 경우 0으로 구조를 채웁니다. 포함된 OLE 개체와 같은 컨트롤이 메타파일로 자신을 렌더링해야 할 수 있으므로 컨트롤을 그리는 경우 GetTextMetrics 대신 이 함수를 사용해야 합니다.
TEXTMETRIC
SelectFontObject 함수가 호출되면 기본 글꼴의 구조가 새로 고쳐집니다. 스톡 글꼴 속성을 선택한 후에만 호출 GetFontTextMetrics
하여 제공하는 정보가 유효한지 확인해야 합니다.
COleControl::GetForeColor
주식 ForeColor 속성의 Get 함수를 구현합니다.
OLE_COLOR GetForeColor();
Return Value
반환 값은 성공하면 현재 전경색을 OLE_COLOR 값으로 지정합니다. 이 값은 호출을 사용하여 COLORREF 값으로 변환할 수 있습니다 TranslateColor
.
COleControl::GetHwnd
stock hWnd 속성의 Get 함수를 구현합니다.
OLE_HANDLE GetHwnd();
Return Value
OLE 컨트롤의 창 핸들(있는 경우)입니다. 그렇지 않으면 NULL입니다.
COleControl::GetMessageString
nID로 식별되는 메뉴 항목의 용도를 설명하는 짧은 문자열을 얻기 위해 프레임워크에서 호출됩니다.
virtual void GetMessageString(
UINT nID,
CString& rMessage) const;
매개 변수
nID
메뉴 항목 ID입니다.
rMessage
문자열이 반환될 CString 개체에 대한 참조입니다.
설명
메뉴 항목이 강조 표시된 동안 상태 표시줄에 표시할 메시지를 가져오는 데 사용할 수 있습니다. 기본 구현은 nID로 식별되는 문자열 리소스를 로드하려고 시도합니다.
COleControl::GetNotSupported
사용자가 컨트롤의 속성 값에 액세스할 수 없도록 합니다.
void GetNotSupported();
설명
컨트롤의 사용자가 속성을 검색할 수 없는 속성의 Get 함수 대신 이 함수를 호출합니다. 한 가지 예는 쓰기 전용인 속성입니다.
COleControl::GetReadyState
컨트롤의 준비 상태를 반환합니다.
long GetReadyState();
Return Value
다음 값 중 하나인 컨트롤의 준비 상태입니다.
속성 | 설명 |
---|---|
READYSTATE_UNINITIALIZED | 기본 초기화 상태 |
READYSTATE_LOADING | 컨트롤이 현재 해당 속성을 로드하고 있습니다. |
READYSTATE_LOADED | 컨트롤이 초기화되었습니다. |
READYSTATE_INTERACTIVE | 컨트롤에 대화형으로 사용할 수 있는 충분한 데이터가 있지만 모든 비동기 데이터가 아직 로드되지 않았습니다. |
READYSTATE_COMPLETE | 컨트롤에 모든 데이터가 있습니다. |
설명
대부분의 간단한 컨트롤은 LOADED와 INTERACTIVE를 구분할 필요가 없습니다. 그러나 데이터 경로 속성을 지원하는 컨트롤은 적어도 일부 데이터가 비동기적으로 수신될 때까지 대화형으로 준비되지 않을 수 있습니다. 컨트롤은 가능한 한 빨리 대화형이 되도록 시도해야 합니다.
COleControl::GetRectInContainer
디바이스 단위로 표현된 컨테이너를 기준으로 컨트롤 사각형의 좌표를 가져옵니다.
BOOL GetRectInContainer(LPRECT lpRect);
매개 변수
lpRect
컨트롤의 좌표를 복사할 사각형 구조체에 대한 포인터입니다.
Return Value
컨트롤이 현재 위치 활성 상태이면 0이 아닌 경우 그렇지 않으면 0입니다.
설명
사각형은 컨트롤이 현재 위치 활성 상태인 경우에만 유효합니다.
COleControl::GetStockTextMetrics
SelectStockFont 함수를 사용하여 선택할 수 있는 컨트롤의 스톡 글꼴 속성에 대한 텍스트 메트릭을 측정합니다.
void GetStockTextMetrics(LPTEXTMETRIC lptm);
매개 변수
lptm
TEXTMETRIC 구조체에 대한 포인터입니다.
설명
이 함수는 GetStockTextMetrics
성공하면 유효한 메트릭 정보를 사용하여 lptm에서 가리키는 구조를 초기화 TEXTMETRIC
하거나, 성공하지 못한 경우 구조를 0으로 채웁니다. 컨트롤을 임베 디드 OLE 개체와 마찬가지로 메타파일로 렌더링하는 데 필요할 수 있으므로 컨트롤을 그리는 경우 GetTextMetrics 대신 이 함수를 사용합니다.
TEXTMETRIC
함수가 호출될 때 기본 글꼴의 구조가 SelectStockFont
새로 고쳐집니다. 주식 글꼴을 선택한 후에만 이 함수를 호출하여 제공하는 정보가 유효한지 확인해야 합니다.
COleControl::GetText
스톡 텍스트 또는 캡션 속성의 Get 함수를 구현합니다.
BSTR GetText();
Return Value
컨트롤 텍스트 문자열의 현재 값이거나 문자열이 없는 경우 길이가 0인 문자열입니다.
참고 항목
BSTR 데이터 형식에 대한 자세한 내용은 매크로 및 전역 섹션의 데이터 형식을 참조하세요.
설명
이 함수의 호출자는 리소스를 해제하기 위해 반환된 문자열을 호출 SysFreeString
해야 합니다. 컨트롤의 구현 내에서 컨트롤의 스톡 텍스트 또는 캡션 속성에 액세스하는 데 사용합니다 InternalGetText
.
COleControl::GetWindowlessDropTarget
창 없는 컨트롤이 OLE 끌어서 놓기 작업의 대상이 되도록 하려면 재정 GetWindowlessDropTarget
의합니다.
virtual IDropTarget* GetWindowlessDropTarget();
Return Value
개체의 인터페이스에 대한 포인터입니다 IDropTarget
. 창이 없으므로 창 없는 개체는 인터페이스를 등록할 IDropTarget
수 없습니다. 그러나 끌어서 놓기를 위해 창 없는 개체는 인터페이스를 구현하고 반환할 GetWindowlessDropTarget
수 있습니다.
설명
일반적으로 이를 위해서는 컨트롤의 창이 놓기 대상으로 등록되어야 합니다. 그러나 컨트롤에는 자체 창이 없으므로 컨테이너는 자체 창을 삭제 대상으로 사용합니다. 컨트롤은 컨테이너가 적절한 시간에 호출을 위임할 수 있는 인터페이스의 IDropTarget
구현을 제공해야 합니다. 예시:
IDropTarget *CMyAxCtrl::GetWindowlessDropTarget()
{
m_xDropTarget.AddRef();
return &m_xDropTarget;
}
COleControl::InitializeIIDs
컨트롤에서 사용할 IID의 기본 클래스를 알릴 수 있습니다.
void InitializeIIDs(
const IID* piidPrimary,
const IID* piidEvents);
매개 변수
piidPrimary
컨트롤의 기본 디스패치 인터페이스의 인터페이스 ID에 대한 포인터입니다.
piidEvents
컨트롤 이벤트 인터페이스의 인터페이스 ID에 대한 포인터입니다.
설명
컨트롤의 생성자에서 이 함수를 호출하여 컨트롤에서 사용할 인터페이스 ID의 기본 클래스를 알릴 수 있습니다.
COleControl::InternalGetFont
컨트롤의 스톡 글꼴 속성에 액세스합니다.
CFontHolder& InternalGetFont();
Return Value
Stock Font 개체를 포함하는 CFontHolder 개체에 대한 참조입니다.
COleControl::InternalGetText
컨트롤의 스톡 텍스트 또는 캡션 속성에 액세스합니다.
const CString& InternalGetText();
Return Value
컨트롤 텍스트 문자열에 대한 참조입니다.
COleControl::InternalSetReadyState
컨트롤의 준비 상태를 설정합니다.
void InternalSetReadyState(long lNewReadyState);
매개 변수
lNewReadyState
다음 값 중 하나인 컨트롤에 대해 설정할 준비 상태입니다.
속성 | 설명 |
---|---|
READYSTATE_UNINITIALIZED | 기본 초기화 상태 |
READYSTATE_LOADING | 컨트롤이 현재 해당 속성을 로드하고 있습니다. |
READYSTATE_LOADED | 컨트롤이 초기화되었습니다. |
READYSTATE_INTERACTIVE | 컨트롤에 대화형으로 사용할 수 있는 충분한 데이터가 있지만 모든 비동기 데이터가 아직 로드되지 않았습니다. |
READYSTATE_COMPLETE | 컨트롤에 모든 데이터가 있습니다. |
설명
대부분의 간단한 컨트롤은 LOADED와 INTERACTIVE를 구분할 필요가 없습니다. 그러나 데이터 경로 속성을 지원하는 컨트롤은 적어도 일부 데이터가 비동기적으로 수신될 때까지 대화형으로 준비되지 않을 수 있습니다. 컨트롤은 가능한 한 빨리 대화형이 되도록 시도해야 합니다.
COleControl::InvalidateControl
컨트롤이 자신을 다시 그리도록 합니다.
void InvalidateControl(
LPCRECT lpRect = NULL,
BOOL bErase = TRUE);
매개 변수
lpRect
무효화할 컨트롤의 영역에 대한 포인터입니다.
bErase
업데이트 영역이 처리될 때 업데이트 영역 내의 배경을 지울지 여부를 지정합니다.
설명
lpRect에 NULL 값이 있으면 전체 컨트롤이 다시 그려지게 됩니다. lpRect가 NULL이 아니면 무효화할 컨트롤의 사각형 부분을 나타냅니다. 컨트롤에 창이 없거나 현재 활성 상태가 아닌 경우 사각형이 무시되고 클라이언트 사이트의 IAdviseSink::OnViewChange 멤버 함수에 대한 호출이 수행됩니다. 또는 . 대신 이 함수를 CWnd::InvalidateRect
InvalidateRect
사용합니다.
COleControl::InvalidateRgn
지정된 지역 내에서 컨테이너 창의 클라이언트 영역을 무효화합니다.
void InvalidateRgn(CRgn* pRgn, BOOL bErase = TRUE);
매개 변수
pRgn
포함하는 창의 클라이언트 좌표에서 무효화할 OLE 개체의 표시 영역을 식별하는 CRgn 개체에 대한 포인터입니다. 이 매개 변수가 NULL이면 전체 개체가 익스텐트입니다.
bErase
무효화된 영역 내의 배경을 지울지 여부를 지정합니다. TRUE이면 배경이 지워집니다. FALSE이면 배경은 변경되지 않은 상태로 유지됩니다.
설명
컨테이너 내에서 창 없는 컨트롤을 다시 그리는 데 사용할 수 있습니다. 무효화된 영역은 업데이트 지역의 다른 모든 영역과 함께 다음 WM_PAINT 메시지를 보낼 때 그리기 위해 표시됩니다.
업데이트 영역의 모든 부분에 대해 bErase가 TRUE이면 지정된 부분뿐만 아니라 전체 지역의 배경이 지워집니다.
COleControl::IsConvertingVBX
OLE 컨트롤의 특수 로드를 허용합니다.
BOOL IsConvertingVBX();
Return Value
컨트롤이 변환되는 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
VBX 컨트롤을 사용하는 폼을 OLE 컨트롤을 사용하는 폼으로 변환하는 경우 OLE 컨트롤에 대한 특수 로드 코드가 필요할 수 있습니다. 예를 들어 OLE 컨트롤의 인스턴스를 로드하는 경우 다음에서 PX_Font DoPropExchange
호출할 수 있습니다.
PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);
그러나 VBX 컨트롤에는 Font 개체가 없습니다. 각 글꼴 속성은 개별적으로 저장되었습니다. 이 경우 다음 두 경우를 구분하는 데 사용합니다 IsConvertingVBX
.
if (!IsConvertingVBX())
{
PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);
}
else
{
PX_String(pPX, _T("FontName"), tempString, DefaultName);
m_pMyFont->m_pFont->put_Name(tempString.AllocSysString());
PX_Bool(pPX, _T("FontUnderline"), tempBool, DefaultValue);
m_pMyFont->m_pFont->put_Underline(tempBool);
}
또 다른 경우는 VBX 컨트롤이 VBM_SAVEPROPERTY 메시지 처리기에서 독점 이진 데이터를 저장하고 OLE 컨트롤이 이진 데이터를 다른 형식으로 저장하는 경우입니다. OLE 컨트롤이 VBX 컨트롤과 이전 버전과 호환되도록 하려면 VBX 컨트롤 또는 OLE 컨트롤이 로드되는지 여부를 구분하여 함수를 사용하여 IsConvertingVBX
이전 형식과 새 형식을 모두 읽을 수 있습니다.
컨트롤의 DoPropExchange
함수에서 이 조건을 확인하고 true이면 이 변환과 관련된 로드 코드를 실행합니다(예: 이전 예제). 컨트롤이 변환되지 않는 경우 일반 로드 코드를 실행할 수 있습니다. 이 기능은 VBX 대응 컨트롤에서 변환되는 컨트롤에만 적용됩니다.
COleControl::IsInvokeAllowed
자동화 메서드 호출을 사용하도록 설정합니다.
BOOL IsInvokeAllowed(DISPID dispid);
Return Value
컨트롤이 초기화된 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
지정된 함수(식별dispid
됨)가 호출될 수 있는지 여부를 결정하는 프레임워크의 IDispatch::Invoke
호출 IsInvokeAllowed
구현입니다. OLE 컨트롤의 기본 동작은 컨트롤이 초기화된 경우에만 자동화 메서드를 호출할 수 있도록 하는 것입니다. 그러나 IsInvokeAllowed
가상 함수이며 필요한 경우(예: 컨트롤이 자동화 서버로 사용되는 경우) 재정의될 수 있습니다.
COleControl::IsModified
컨트롤의 상태가 수정되었는지 여부를 확인합니다.
BOOL IsModified();
Return Value
컨트롤의 상태가 마지막으로 저장된 이후 수정된 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
속성이 값을 변경할 때 컨트롤의 상태가 수정됩니다.
COleControl::IsOptimizedDraw
컨테이너가 현재 그리기 작업에 최적화된 그리기를 지원하는지 여부를 결정합니다.
BOOL IsOptimizedDraw();
Return Value
컨테이너가 현재 그리기 작업에 최적화된 그리기를 지원하는 경우 TRUE입니다. 그렇지 않으면 FALSE입니다.
설명
최적화된 그리기를 지원하는 경우 그리기를 완료할 때 컨트롤에서 디바이스 컨텍스트에 이전 개체(펜, 브러시, 글꼴 등)를 선택할 필요가 없습니다.
COleControl::IsSubclassedControl
프레임워크에서 호출하여 컨트롤이 Windows 컨트롤을 서브클래싱하는지 여부를 확인합니다.
virtual BOOL IsSubclassedControl();
Return Value
컨트롤이 서브클래스된 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
OLE 컨트롤이 Windows 컨트롤을 서브클래싱하는 경우 이 함수를 재정의하고 TRUE를 반환해야 합니다.
COleControl::Load
비동기적으로 로드된 이전 데이터를 다시 설정하여 컨트롤의 비동기 속성에 대한 새 로드를 시작합니다.
void Load(LPCTSTR strNewPath, CDataPathProperty& prop);
매개 변수
strNewPath
비동기 컨트롤 속성의 절대 위치를 참조하는 경로를 포함하는 문자열에 대한 포인터입니다.
prop
비동기 컨트롤 속성을 구현하는 CDataPathProperty 개체입니다.
COleControl::LockInPlaceActive
컨테이너가 컨트롤을 비활성화하지 않도록 합니다.
BOOL LockInPlaceActive(BOOL bLock);
매개 변수
bLock
TRUE이면 컨트롤의 현재 위치 활성 상태를 잠글 수 있습니다. 잠금 해제할 경우 FALSE입니다.
Return Value
잠금이 성공한 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
컨트롤의 모든 잠금은 완료되면 컨트롤 잠금 해제와 쌍을 이겨야 합니다. 이벤트를 발생 하는 동안과 같이 짧은 기간 동안만 컨트롤을 잠가야 합니다.
COleControl::OnAmbientPropertyChange
컨테이너의 앰비언트 속성 값이 변경된 경우 프레임워크에서 호출됩니다.
virtual void OnAmbientPropertyChange(DISPID dispid);
매개 변수
dispID
변경된 앰비언트 속성의 디스패치 ID이거나 여러 속성이 변경된 경우 DISPID_UNKNOWN.
COleControl::OnAppearanceChanged
Stock Appearance 속성 값이 변경될 때 프레임워크에서 호출됩니다.
virtual void OnAppearanceChanged ();
설명
이 속성이 변경된 후 알림을 원하는 경우 이 함수를 재정의합니다. 기본 구현은 .를 호출합니다 InvalidateControl
.
COleControl::OnBackColorChanged
스톡 BackColor 속성 값이 변경될 때 프레임워크에서 호출됩니다.
virtual void OnBackColorChanged();
설명
이 속성이 변경된 후 알림을 원하는 경우 이 함수를 재정의합니다. 기본 구현은 .를 호출합니다 InvalidateControl
.
COleControl::OnBorderStyleChanged
stock BorderStyle 속성 값이 변경될 때 프레임워크에서 호출됩니다.
virtual void OnBorderStyleChanged();
설명
기본 구현은 .를 호출합니다 InvalidateControl
.
이 속성이 변경된 후 알림을 원하는 경우 이 함수를 재정의합니다.
COleControl::OnClick
마우스 단추를 클릭하거나 DoClick 스톡 메서드를 호출할 때 프레임워크에서 호출됩니다.
virtual void OnClick(USHORT iButton);
매개 변수
iButton
마우스 단추의 인덱스입니다. 다음 값 중 하나가 될 수 있습니다.
LEFT_BUTTON 마우스 왼쪽 단추를 클릭했습니다.
MIDDLE_BUTTON 마우스 가운데 단추를 클릭했습니다.
RIGHT_BUTTON 마우스 오른쪽 단추를 클릭했습니다.
설명
기본 구현은 .를 호출합니다 COleControl::FireClick
.
이 멤버 함수를 재정의하여 기본 처리를 수정하거나 확장합니다.
COleControl::OnClose
컨테이너가 컨트롤의 IOleControl::Close
함수를 호출할 때 프레임워크에서 호출됩니다.
virtual void OnClose(DWORD dwSaveOption);
매개 변수
dwSaveOption
로드하기 전에 개체를 저장할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
OLECLOSE_SAVEIFDIRTY
OLECLOSE_NOSAVE
OLECLOSE_PROMPTSAVE
설명
기본적으로 OnClose
컨트롤 개체가 수정 되고 dwSaveOption 이 OLECLOSE_SAVEIFDIRTY 또는 OLECLOSE_PROMPTSAVE 경우 저장합니다.
COleControl::OnDoVerb
컨테이너가 멤버 함수를 호출할 때 프레임워크에서 호출됩니다 IOleObject::DoVerb
.
virtual BOOL OnDoVerb(
LONG iVerb,
LPMSG lpMsg,
HWND hWndParent,
LPCRECT lpRect);
매개 변수
iVerb
호출할 컨트롤 동사의 인덱스입니다.
lpMsg
동사를 호출하게 한 Windows 메시지에 대한 포인터입니다.
hWndParent
컨트롤의 부모 창에 대한 핸들입니다. 동사를 실행하면 창(또는 창) 이 만들어지면 hWndParent 를 부모로 사용해야 합니다.
lpRect
컨테이너를 기준으로 컨트롤의 좌표가 복사되는 RECT 구조체에 대한 포인터입니다.
Return Value
호출에 성공하면 0이 아닌 값입니다. 그렇지 않으면 0입니다.
설명
기본 구현에서는 ON_OLEVERB 및 ON_STDOLEVERB 메시지 맵 항목을 사용하여 호출할 적절한 함수를 결정합니다.
동사의 기본 처리를 변경하려면 이 함수를 재정의합니다.
COleControl::OnDraw
지정된 디바이스 컨텍스트를 사용하여 지정된 경계 사각형에 OLE 컨트롤을 그리기 위해 프레임워크에서 호출됩니다.
virtual void OnDraw(
CDC* pDC,
const CRect& rcBounds,
const CRect& rcInvalid);
매개 변수
pDC
드로잉이 발생하는 디바이스 컨텍스트입니다.
rcBounds
테두리를 포함하여 컨트롤의 사각형 영역입니다.
rcInvalid
잘못된 컨트롤의 사각형 영역입니다.
설명
OnDraw
는 일반적으로 화면 표시를 위해 호출되어 화면 디바이스 컨텍스트를 pDC로 전달합니다. rcBounds 매개 변수는 대상 디바이스 컨텍스트에서 사각형을 식별합니다(현재 매핑 모드를 기준으로 함). rcInvalid 매개 변수는 잘못된 실제 사각형입니다. 경우에 따라 rcBounds보다 작은 영역이 됩니다.
COleControl::OnDrawMetafile
지정된 메타파일 디바이스 컨텍스트를 사용하여 지정된 경계 사각형에 OLE 컨트롤을 그리기 위해 프레임워크에서 호출됩니다.
virtual void OnDrawMetafile(
CDC* pDC,
const CRect& rcBounds);
매개 변수
pDC
드로잉이 발생하는 디바이스 컨텍스트입니다.
rcBounds
테두리를 포함하여 컨트롤의 사각형 영역입니다.
설명
기본 구현은 OnDraw 함수를 호출합니다.
COleControl::OnEdit
컨트롤이 UI 활성화되도록 합니다.
virtual BOOL OnEdit(
LPMSG lpMsg,
HWND hWndParent,
LPCRECT lpRect);
매개 변수
lpMsg
동사를 호출한 Windows 메시지에 대한 포인터입니다.
hWndParent
컨트롤의 부모 창에 대한 핸들입니다.
lpRect
컨테이너의 컨트롤에서 사용하는 사각형에 대한 포인터입니다.
Return Value
호출에 성공하면 0이 아닌 값입니다. 그렇지 않으면 0입니다.
설명
컨트롤의 OLEIVERB_UIACTIVATE 동사를 호출하는 것과 같은 효과가 있습니다.
이 함수는 일반적으로 ON_OLEVERB 메시지 맵 항목에 대한 처리기 함수로 사용됩니다. 이렇게 하면 컨트롤의 "개체" 메뉴에서 "편집" 동사를 사용할 수 있습니다. 예시:
ON_OLEVERB(AFX_IDS_VERB_EDIT, OnEdit)
COleControl::OnEnabledChanged
주식 사용 속성 값이 변경되었을 때 프레임워크에서 호출됩니다.
virtual void OnEnabledChanged();
설명
이 속성이 변경된 후 알림을 원하는 경우 이 함수를 재정의합니다. 기본 구현에서는 InvalidateControl을 호출합니다.
COleControl::OnEnumVerbs
컨테이너가 멤버 함수를 호출할 때 프레임워크에서 호출됩니다 IOleObject::EnumVerbs
.
virtual BOOL OnEnumVerbs(LPENUMOLEVERB* ppenumOleVerb);
매개 변수
ppenumOleVerb
컨트롤의 IEnumOLEVERB
동사를 열거하는 개체에 대한 포인터입니다.
Return Value
동사를 사용할 수 있는 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
기본 구현은 메시지 맵의 ON_OLEVERB 항목을 열거합니다.
동사를 열거하는 기본 방법을 변경하려면 이 함수를 재정의합니다.
COleControl::OnEventAdvise
이벤트 처리기가 OLE 컨트롤에 연결되거나 연결이 끊어지면 프레임워크에서 호출됩니다.
virtual void OnEventAdvise(BOOL bAdvise);
매개 변수
bAdvise
TRUE는 이벤트 처리기가 컨트롤에 연결되었음을 나타냅니다. FALSE는 이벤트 처리기가 컨트롤과 연결이 끊어졌는지를 나타냅니다.
COleControl::OnFontChanged
스톡 글꼴 속성 값이 변경되면 프레임워크에서 호출됩니다.
virtual void OnFontChanged();
설명
기본 구현은 .를 호출합니다 COleControl::InvalidateControl
. 컨트롤이 Windows 컨트롤을 서브클래싱하는 경우 기본 구현은 컨트롤의 창에도 WM_SETFONT 메시지를 보냅니다.
이 속성이 변경된 후 알림을 원하는 경우 이 함수를 재정의합니다.
예시
void CMyAxCtrl::OnFontChanged()
{
// Always set it to the container's font
if (m_MyEdit.m_hWnd != NULL)
{
IFontDisp *pFontDisp = NULL;
IFont *pFont = NULL;
HRESULT hr;
// Get the container's FontDisp interface
pFontDisp = AmbientFont();
if (pFontDisp)
{
hr = pFontDisp->QueryInterface(IID_IFont, (LPVOID*)&pFont);
if (FAILED(hr))
{
pFontDisp->Release();
return;
}
}
HFONT hFont = NULL;
if (pFont)
{
pFont->get_hFont(&hFont);
m_MyEdit.SendMessage(WM_SETFONT, (WPARAM)hFont, 0L);
}
pFontDisp->Release();
}
// Invalidate the control
m_MyEdit.Invalidate();
m_MyEdit.UpdateWindow();
COleControl::OnFontChanged();
}
COleControl::OnForeColorChanged
주식 ForeColor 속성 값이 변경되면 프레임워크에서 호출됩니다.
virtual void OnForeColorChanged();
설명
기본 구현은 .를 호출합니다 InvalidateControl
.
이 속성이 변경된 후 알림을 원하는 경우 이 함수를 재정의합니다.
COleControl::OnFreezeEvents
컨테이너가 호출된 후 프레임워크에서 호출 IOleControl::FreezeEvents
됩니다.
virtual void OnFreezeEvents(BOOL bFreeze);
매개 변수
bFreeze
컨트롤의 이벤트 처리가 고정된 경우 TRUE입니다. 그렇지 않으면 FALSE입니다.
설명
기본 구현은 아무 작업도 수행하지 않습니다.
이벤트 처리가 고정되거나 고정되지 않은 경우 추가 동작을 원하는 경우 이 함수를 재정의합니다.
COleControl::OnGetColorSet
컨테이너가 멤버 함수를 호출할 때 프레임워크에서 호출됩니다 IViewObject::GetColorSet
.
virtual BOOL OnGetColorSet(
DVTARGETDEVICE* ptd,
HDC hicTargetDev,
LPLOGPALETTE* ppColorSet);
매개 변수
ptd
그림을 렌더링해야 하는 대상 디바이스를 가리킵니다. 이 값이 NULL이면 그림이 기본 대상 디바이스(일반적으로 디스플레이 디바이스)에 대해 렌더링되어야 합니다.
hicTargetDev
ptd로 표시된 대상 디바이스의 정보 컨텍스트를 지정합니다. 이 매개 변수는 디바이스 컨텍스트일 수 있지만 반드시 그런 것은 아닙니다. ptd가 NULL이면 hicTargetDev도 NULL이어야 합니다.
ppColorSet
사용할 색 집합을 복사해야 하는 위치에 대한 포인터입니다. 함수가 색 집합을 반환하지 않으면 NULL이 반환됩니다.
Return Value
유효한 색 집합이 반환되면 0이 아닌 경우 그렇지 않으면 0입니다.
설명
컨테이너는 이 함수를 호출하여 OLE 컨트롤을 그리는 데 필요한 모든 색을 가져옵니다. 컨테이너는 전체 색상표를 설정하는 데 필요한 색과 함께 가져온 색 집합을 사용할 수 있습니다. 기본 구현은 FALSE를 반환합니다.
이 요청의 특수한 처리를 수행하도록 이 함수를 재정의합니다.
COleControl::OnGetControlInfo
컨트롤의 컨테이너가 컨트롤에 대한 정보를 요청하면 프레임워크에서 호출됩니다.
virtual void OnGetControlInfo(LPCONTROLINFO pControlInfo);
매개 변수
pControlInfo
채울 CONTROLINFO 구조체에 대한 포인터입니다.
설명
이 정보는 주로 컨트롤의 니모닉 키에 대한 설명으로 구성됩니다. 기본 구현은 pControlInfo를 기본 정보로 채웁니다.
컨트롤이 니모닉 키를 처리해야 하는 경우 이 함수를 재정의합니다.
COleControl::OnGetDisplayString
dispid로 식별된 속성의 현재 값을 나타내는 문자열을 가져오기 위해 프레임워크에서 호출됩니다.
virtual BOOL OnGetDisplayString(
DISPID dispid,
CString& strValue);
매개 변수
dispid
컨트롤의 속성에 대한 디스패치 ID입니다.
strValue
문자열이 반환될 CString 개체에 대한 참조입니다.
Return Value
문자열이 strValue에서 반환된 경우 0이 아니고, 그렇지 않으면 0입니다.
설명
컨트롤에 값을 문자열로 직접 변환할 수 없는 속성이 있고 컨테이너 제공 속성 브라우저에 속성 값을 표시하려는 경우 이 함수를 재정의합니다.
COleControl::OnGetInPlaceMenu
컨트롤이 UI를 활성화할 때 프레임워크에서 호출되어 컨테이너의 기존 메뉴에 병합할 메뉴를 가져옵니다.
virtual HMENU OnGetInPlaceMenu();
Return Value
컨트롤 메뉴의 핸들이거나 컨트롤에 없는 경우 NULL입니다. 기본 구현은 NULL을 반환합니다.
설명
OLE 리소스 병합에 대한 자세한 내용은 OLE(메뉴 및 리소스) 문서를 참조하세요.
COleControl::OnGetNaturalExtent
컨테이너 IViewObjectEx::GetNaturalExtent
의 요청에 대한 응답으로 프레임워크에서 호출됩니다.
virtual BOOL OnGetNaturalExtent(
DWORD dwAspect,
LONG lindex,
DVTARGETDEVICE* ptd,
HDC hicTargetDev,
DVEXTENTINFO* pExtentInfo,
LPSIZEL psizel);
매개 변수
dwAspect
개체를 표현할 방법을 지정합니다. 표현에는 콘텐츠, 아이콘, 썸네일 또는 인쇄된 문서가 포함됩니다. 유효한 값은 열거형 DVASPECT 또는 DVASPECT2 가져옵니다.
lindex
관심 있는 개체의 부분입니다. 현재 -1만 유효합니다.
ptd
개체의 크기를 반환해야 하는 대상 디바이스를 정의하는 DVTARGETDEVICE 구조를 가리킵니다.
hicTargetDev
개체가 디바이스 메트릭을 추출하고 디바이스의 기능을 테스트할 수 있는 ptd 매개 변수로 표시된 대상 디바이스의 정보 컨텍스트를 지정합니다. ptd가 NULL인 경우 개체는 hicTargetDev 매개 변수의 값을 무시해야 합니다.
pExtentInfo
DVEXTENTINFO
크기 조정 데이터를 지정하는 구조를 가리킵니다. 구조는 DVEXTENTINFO
다음과 같습니다.
typedef struct tagExtentInfo
{
UINT cb;
DWORD dwExtentMode;
SIZEL sizelProposed;
} DVEXTENTINFO;
구조체 멤버 dwExtentMode
는 다음 두 값 중 하나를 사용할 수 있습니다.
DVEXTENT_CONTENT 콘텐츠에 정확히 맞추기 위해 컨트롤이 얼마나 커야 하는지 조회(맞춤-크기)
DVEXTENT_INTEGRAL 크기 조정 시 제안된 크기를 제어에 전달합니다.
psizel
컨트롤에서 반환된 데이터 크기를 가리킵니다. 반환된 크기 조정 데이터는 조정되지 않은 차원에 대해 -1로 설정됩니다.
Return Value
크기를 성공적으로 반환하거나 조정하는 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
이 함수를 재정의하여 개체의 표시 크기를 제안된 크기와 구조체의 ex텐트 모드 DVEXTENTINFO
가장 가깝게 반환합니다. 기본 구현은 FALSE를 반환하고 크기를 조정하지 않습니다.
COleControl::OnGetPredefinedStrings
속성에 대해 가능한 값을 나타내는 미리 정의된 문자열 집합을 가져오기 위해 프레임워크에서 호출됩니다.
virtual BOOL OnGetPredefinedStrings(
DISPID dispid,
CStringArray* pStringArray,
CDWordArray* pCookieArray);
매개 변수
dispid
컨트롤의 속성에 대한 디스패치 ID입니다.
pStringArray
반환 값으로 채울 문자열 배열입니다.
pCookieArray
반환 값으로 채울 DWORD 배열입니다.
Return Value
pStringArray 및 pCookieArray에 요소가 추가된 경우 0이 아닌 경우
설명
컨트롤에 문자열로 나타낼 수 있는 가능한 값 집합이 있는 속성이 있는 경우 이 함수를 재정의합니다. pStringArray에 추가된 각 요소에 대해 pCookieArray에 해당 "쿠키" 요소를 추가해야 합니다. 이러한 "쿠키" 값은 나중에 프레임워크에서 함수에 COleControl::OnGetPredefinedValue
전달할 수 있습니다.
COleControl::OnGetPredefinedValue
재정의에 의해 이전에 반환된 미리 정의된 문자열 중 하나에 해당하는 값을 얻기 위해 프레임워크에서 COleControl::OnGetPredefinedStrings
호출됩니다.
virtual BOOL OnGetPredefinedValue(
DISPID dispid,
DWORD dwCookie,
VARIANT* lpvarOut);
매개 변수
dispid
컨트롤의 속성에 대한 디스패치 ID입니다.
dwCookie
재정의에 의해 이전에 반환된 쿠키 값입니다 COleControl::OnGetPredefinedStrings
.
lpvarOut
속성 값이 VARIANT
반환되는 구조체에 대한 포인터입니다.
Return Value
값이 lpvarOut에서 반환된 경우 0이 아니고, 그렇지 않으면 0입니다.
COleControl::OnGetViewExtent
컨테이너의 IViewObject2::GetExtent 요청에 대한 응답으로 프레임워크에서 호출됩니다 .
virtual BOOL OnGetViewExtent(
DWORD dwDrawAspect,
LONG lindex,
DVTARGETDEVICE* ptd,
LPSIZEL lpsizel);
매개 변수
dwDrawAspect
표시할 개체의 폼 또는 측면을 설명하는 DWORD입니다. 유효한 값은 열거형 DVASPECT 또는 DVASPECT2 가져옵니다.
lindex
관심 있는 개체의 부분입니다. 현재 -1만 유효합니다.
ptd
개체의 크기를 반환해야 하는 대상 디바이스를 정의하는 DVTARGETDEVICE 구조를 가리킵니다.
lpsizel
개체의 크기가 반환되는 위치를 가리킵니다.
Return Value
0이 아닌 경우 익스텐트 정보가 반환됩니다. 그렇지 않으면 0입니다.
설명
컨트롤이 2패스 드로잉을 사용하고 불투명하고 투명한 부분의 차원이 다른 경우 이 함수를 재정의합니다.
COleControl::OnGetViewRect
컨테이너 IViewObjectEx::GetRect
의 요청에 대한 응답으로 프레임워크에서 호출됩니다.
virtual BOOL OnGetViewRect(DWORD dwAspect, LPRECTL pRect);
매개 변수
dwAspect
표시할 개체의 폼 또는 측면을 설명하는 DWORD입니다. 유효한 값은 열거형 DVASPECT 또는 DVASPECT2 가져옵니다.
DVASPECT_CONTENT 전체 개체의 경계 사각형입니다. 개체의 원점에서 왼쪽 위 모서리와 크기가 반환된
GetViewExtent
범위와 같습니다.사각형 불투명 영역이 있는 DVASPECT_OPAQUE 개체는 해당 사각형을 반환합니다. 다른 사람들은 실패합니다.
DVASPECT_TRANSPARENT 모든 투명하거나 불규칙한 부분을 덮는 사각형입니다.
pRect
개체를 그릴 사각형을 지정하는 RECTL 구조를 가리킵니다. 이 매개 변수는 개체의 위치 및 스트레칭을 제어합니다.
Return Value
개체에 맞게 크기가 조정된 사각형이 성공적으로 반환되면 0이 아닌 값입니다. 그렇지 않으면 0입니다.
설명
개체의 크기는 특정 위치에서 시작하는 사각형으로 변환 OnGetViewRect
됩니다(기본값은 디스플레이의 왼쪽 위 모서리). 컨트롤이 2패스 드로잉을 사용하고 불투명하고 투명한 부분의 차원이 다른 경우 이 함수를 재정의합니다.
COleControl::OnGetViewStatus
컨테이너 IViewObjectEx::GetViewStatus
의 요청에 대한 응답으로 프레임워크에서 호출됩니다.
virtual DWORD OnGetViewStatus();
Return Value
성공한 경우 VIEWSTATUS 열거형의 값 중 하나입니다. 그렇지 않으면 0입니다. 가능한 값은 다음의 조합입니다.
속성 | 설명 |
---|---|
VIEWSTATUS_OPAQUE | 개체가 완전히 불투명합니다. 이 비트를 설정하지 않으면 개체에 투명한 부분이 포함됩니다. 이 비트는 콘텐츠 관련 측면에만 적용되며 DVASPECT_ICON 또는 DVASPECT_DOCPRINT 적용되지 않습니다. |
VIEWSTATUS_SOLIDBKGND | 개체에는 단색 배경이 있습니다(브러시 패턴이 아닌 단색으로 구성됨). 이 비트는 VIEWSTATUS_OPAQUE 설정되고 콘텐츠 관련 측면에만 적용되고 DVASPECT_ICON 또는 DVASPECT_DOCPRINT 적용되지 않는 경우에만 의미가 있습니다. |
VIEWSTATUS_DVASPECTOPAQUE | 개체는 DVASPECT_OPAQUE 지원합니다. 그리기 측면을 매개 변수로 사용하는 모든 IViewObjectEx 메서드를 이 측면으로 호출할 수 있습니다. |
VIEWSTATUS_DVASPECTTRANSPARENT | 개체는 DVASPECT_TRANSPARENT 지원합니다. 그리기 측면을 매개 변수로 사용하는 모든 IViewObjectEx 메서드를 이 측면으로 호출할 수 있습니다. |
설명
컨트롤에서 2단계 그리기를 사용하는 경우 이 함수를 재정의합니다. 기본 구현은 VIEWSTATUS_OPAQUE 반환합니다.
COleControl::OnHideToolBars
컨트롤이 UI 비활성화될 때 프레임워크에서 호출됩니다.
virtual void OnHideToolBars();
설명
구현에서 표시되는 OnShowToolbars
모든 도구 모음을 숨겨야 합니다.
COleControl::OnInactiveMouseMove
WM_MOUSEMOVE 메시지를 수신할 때 마우스 포인터 아래의 비활성 개체에 대한 컨테이너에서 호출됩니다.
virtual void OnInactiveMouseMove(
LPCRECT lprcBounds,
long x,
long y,
DWORD dwKeyState);
매개 변수
lprcBounds
포함하는 창의 클라이언트 좌표에 있는 개체 경계 사각형입니다. WM_MOUSEMOVE 메시지가 수신되었을 때 개체의 정확한 위치와 크기를 화면에 알릴 수 있습니다.
x
포함하는 창의 클라이언트 좌표에 있는 마우스 위치의 x 좌표입니다.
y
포함하는 창의 클라이언트 좌표에서 마우스 위치의 y 좌표입니다.
dwKeyState
키보드에서 키보드 한정자 키의 현재 상태를 식별합니다. 유효한 값은 MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON 및 MK_RBUTTON 플래그의 조합일 수 있습니다.
설명
창 클라이언트 좌표(픽셀)는 마우스 커서 위치를 전달하는 데 사용됩니다. 이는 동일한 좌표계에 있는 개체의 경계 사각형을 전달하여 가능합니다.
COleControl::OnInactiveSetCursor
WM_SETCURSOR 메시지를 수신할 때 마우스 포인터 아래의 비활성 개체에 대한 컨테이너에서 호출됩니다.
virtual BOOL OnInactiveSetCursor(
LPCRECT lprcBounds,
long x,
long y,
DWORD dwMouseMsg,
BOOL bSetAlways);
매개 변수
lprcBounds
포함하는 창의 클라이언트 좌표에 있는 개체 경계 사각형입니다. WM_SETCURSOR 메시지가 수신되었을 때 개체의 정확한 위치와 크기를 화면에 알릴 수 있습니다.
x
포함하는 창의 클라이언트 좌표에 있는 마우스 위치의 x 좌표입니다.
y
포함하는 창의 클라이언트 좌표에서 마우스 위치의 y 좌표입니다.
dwMouseMsg
WM_SETCURSOR 발생한 마우스 메시지의 식별자입니다.
bSetAlways
개체가 커서를 설정해야 하는지 여부를 지정합니다. TRUE이면 개체가 커서를 설정해야 합니다. FALSE이면 커서가 커서를 설정할 의무가 없으며 이 경우 S_FALSE 반환해야 합니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
창 클라이언트 좌표(픽셀)는 마우스 커서 위치를 전달하는 데 사용됩니다. 이는 동일한 좌표계에 있는 개체의 경계 사각형을 전달하여 가능합니다.
COleControl::OnKeyDownEvent
스톡 KeyDown 이벤트가 처리된 후 프레임워크에서 호출됩니다.
virtual void OnKeyDownEvent(
USHORT nChar,
USHORT nShiftState);
매개 변수
nChar
누른 키의 가상 키 코드 값입니다. 표준 가상 키 코드 목록은 Winuser.h를 참조하세요.
nShiftState
다음 플래그의 조합을 포함합니다.
SHIFT_MASK 작업 중에 SHIFT 키를 눌렀습니다.
CTRL_MASK 작업 중에 Ctrl 키를 눌렀습니다.
ALT_MASK 작업 중에 ALT 키를 눌렀습니다.
설명
이벤트가 발생한 후 컨트롤이 키 정보에 액세스해야 하는 경우 이 함수를 재정의합니다.
COleControl::OnKeyPressEvent
스톡 KeyPress 이벤트가 발생한 후 프레임워크에서 호출됩니다.
virtual void OnKeyPressEvent(USHORT nChar);
매개 변수
nChar
누른 키의 가상 키 코드 값을 포함합니다. 표준 가상 키 코드 목록은 Winuser.h를 참조하세요.
설명
nChar 값이 컨테이너에 의해 수정되었을 수 있습니다.
이 이벤트가 발생한 후 알림을 원하는 경우 이 함수를 재정의합니다.
COleControl::OnKeyUpEvent
스톡 KeyDown 이벤트가 처리된 후 프레임워크에서 호출됩니다.
virtual void OnKeyUpEvent(
USHORT nChar,
USHORT nShiftState);
매개 변수
nChar
누른 키의 가상 키 코드 값입니다. 표준 가상 키 코드 목록은 Winuser.h를 참조하세요.
nShiftState
다음 플래그의 조합을 포함합니다.
SHIFT_MASK 작업 중에 SHIFT 키를 눌렀습니다.
CTRL_MASK 작업 중에 Ctrl 키를 눌렀습니다.
ALT_MASK 작업 중에 ALT 키를 눌렀습니다.
설명
이벤트가 발생한 후 컨트롤이 키 정보에 액세스해야 하는 경우 이 함수를 재정의합니다.
COleControl::OnMapPropertyToPage
지정된 속성의 편집을 구현하는 속성 페이지의 클래스 ID를 가져오기 위해 프레임워크에서 호출됩니다.
virtual BOOL OnMapPropertyToPage(
DISPID dispid,
LPCLSID lpclsid,
BOOL* pbPageOptional);
매개 변수
dispid
컨트롤의 속성에 대한 디스패치 ID입니다.
lpclsid
클래스 ID가 CLSID
반환되는 구조체에 대한 포인터입니다.
pbPageOptional
지정된 속성 페이지의 사용이 선택 사항인지 여부를 나타내는 표시기를 반환합니다.
Return Value
클래스 ID가 lpclsid에서 반환된 경우 0이 아니고, 그렇지 않으면 0입니다.
설명
컨테이너의 속성 브라우저에서 컨트롤의 속성 페이지를 호출하는 방법을 제공하려면 이 함수를 재정의합니다.
COleControl::OnMnemonic
컨테이너가 OLE 컨트롤의 니모닉 키를 누른 것을 감지한 경우 프레임워크에서 호출됩니다.
virtual void OnMnemonic(LPMSG pMsg);
매개 변수
pMsg
니모닉 키 누르기로 생성되는 Windows 메시지에 대한 포인터입니다.
COleControl::OnProperties
컨테이너에서 컨트롤의 속성 동사를 호출할 때 프레임워크에서 호출됩니다.
virtual BOOL OnProperties(
LPMSG lpMsg,
HWND hWndParent,
LPCRECT lpRect);
매개 변수
lpMsg
동사를 호출한 Windows 메시지에 대한 포인터입니다.
hWndParent
컨트롤의 부모 창에 대한 핸들입니다.
lpRect
컨테이너의 컨트롤에서 사용하는 사각형에 대한 포인터입니다.
Return Value
호출에 성공하면 0이 아닌 값입니다. 그렇지 않으면 0입니다.
설명
기본 구현에는 모달 속성 대화 상자가 표시됩니다.
이 함수를 사용하여 컨트롤의 속성 페이지가 표시되도록 할 수도 있습니다. hWndParent 매개 변수에서 컨트롤의 부모 핸들을 전달하여 함수를 호출 OnProperties
합니다. 이 경우 lpMsg 및 lpRect 매개 변수의 값은 무시됩니다.
COleControl::OnQueryHitPoint
컨테이너 IViewObjectEx::QueryHitPoint
의 요청에 대한 응답으로 프레임워크에서 호출됩니다.
virtual BOOL OnQueryHitPoint(
DWORD dwAspect,
LPCRECT pRectBounds,
POINT ptlLoc,
LONG lCloseHint,
DWORD* pHitResult);
매개 변수
dwAspect
개체를 나타내는 방법을 지정합니다. 유효한 값은 열거형 DVASPECT 또는 DVASPECT2 가져옵니다.
pRectBounds
RECT
OLE 컨트롤 클라이언트 영역의 경계 사각형을 지정하는 구조체에 대한 포인터입니다.
ptlLoc
적중을 POINT
확인할 지점을 지정하는 구조체에 대한 포인터입니다. 점이 OLE 클라이언트 영역 좌표에 지정됩니다.
lCloseHint
적중을 확인한 지점까지의 "닫기"를 정의하는 거리입니다.
pHitResult
적중 쿼리의 결과에 대한 포인터입니다. 다음의 값 중 하나입니다.
HITRESULT_OUTSIDE ptlLoc은 OLE 개체 외부에 있으며 닫지 않습니다.
HITRESULT_TRANSPARENT ptlLoc은 OLE 개체의 범위 내에 있지만 이미지에 가깝지 않습니다. 예를 들어 투명 원 중간에 있는 점이 HITRESULT_TRANSPARENT 수 있습니다.
HITRESULT_CLOSE ptlLoc은 OLE 개체 내부 또는 외부에 있지만 내부에서 고려할 개체에 충분히 가깝습니다. 작거나 얇거나 세부적인 개체는 이 값을 사용할 수 있습니다. 점이 개체의 경계 사각형 밖에 있더라도 여전히 닫을 수 있습니다(작은 개체를 타격하는 데 필요).
HITRESULT_HIT ptlLoc은 개체의 이미지 내에 있습니다.
Return Value
적중 결과가 성공적으로 반환되면 0이 아닌 경우 그렇지 않으면 0입니다. 적중은 OLE 컨트롤 표시 영역과 겹칩니다.
설명
개체의 표시 사각형이 지정된 지점과 겹치는지 여부를 쿼리합니다(지점에 도달). QueryHitPoint
는 직사각형이 아닌 개체에 대한 적중을 테스트하기 위해 재정의할 수 있습니다.
COleControl::OnQueryHitRect
컨테이너 IViewObjectEx::QueryHitRect
의 요청에 대한 응답으로 프레임워크에서 호출됩니다.
virtual BOOL OnQueryHitRect(
DWORD dwAspect,
LPCRECT pRectBounds,
LPCRECT prcLoc,
LONG lCloseHint,
DWORD* pHitResult);
매개 변수
dwAspect
개체를 표현할 방법을 지정합니다. 유효한 값은 열거형 DVASPECT 또는 DVASPECT2 가져옵니다.
pRectBounds
RECT
OLE 컨트롤 클라이언트 영역의 경계 사각형을 지정하는 구조체에 대한 포인터입니다.
prcLoc
개체의 RECT
왼쪽 위 모서리를 기준으로 적중(개체 사각형과 겹침)을 검사할 사각형을 지정하는 구조체에 대한 포인터입니다.
lCloseHint
사용되지 않습니다.
pHitResult
적중 쿼리의 결과에 대한 포인터입니다. 다음의 값 중 하나입니다.
HITRESULT_OUTSIDE 사각형의 아무 점도 OLE 개체에 의해 적중되지 않습니다.
HITRESULT_HIT 사각형에서 하나 이상의 지점이 개체에 적중될 수 있습니다.
Return Value
적중 결과가 성공적으로 반환되면 0이 아닌 경우 그렇지 않으면 0입니다.
설명
개체의 표시 사각형이 지정된 사각형의 모든 지점과 겹치는지 여부를 쿼리합니다(사각형에 도달). QueryHitRect
는 직사각형이 아닌 개체에 대한 적중을 테스트하기 위해 재정의할 수 있습니다.
COleControl::OnRenderData
지정된 형식으로 데이터를 검색하기 위해 프레임워크에서 호출됩니다.
virtual BOOL OnRenderData(
LPFORMATETC lpFormatEtc,
LPSTGMEDIUM lpStgMedium);
매개 변수
lpFormatEtc
정보가 요청되는 형식을 지정하는 FORMATETC 구조를 가리킵니다.
lpStgMedium
데이터를 반환할 STGMEDIUM 구조를 가리킵니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
지정된 형식은 지연된 렌더링을 위해 DelayRenderData 또는 DelayRenderFileData 멤버 함수를 사용하여 컨트롤 개체에 이전에 배치된 형식입니다. 제공된 스토리지 매체가 파일 또는 OnRenderGlobalData
메모리인 경우 이 함수의 기본 구현은 각각 호출 OnRenderFileData
됩니다. 요청된 형식이 CF_METAFILEPICT 또는 영구 속성 집합 형식인 경우 기본 구현은 적절한 데이터를 렌더링하고 0이 아닌 데이터를 반환합니다. 그렇지 않으면 0을 반환하고 아무 작업도 수행하지 않습니다.
lpStgMedium-tymed가 TYMED_NULL 경우 lpFormatEtc-tymed>에서 지정한 대로 STGMEDIUM을 할당하고 채워야 합니다.> TYMED_NULL 않으면 STGMEDIUM을 데이터로 채워야 합니다.
요청된 형식 및 중간 형식으로 데이터를 제공하도록 이 함수를 재정의합니다. 데이터에 따라 이 함수의 다른 버전 중 하나를 대신 재정의할 수 있습니다. 데이터가 작고 크기가 고정된 경우 재정 OnRenderGlobalData
의합니다. 데이터가 파일에 있거나 가변 크기인 경우 재정 OnRenderFileData
의합니다.
자세한 내용은 Windows SDK의 FORMATETC
구조 및 STGMEDIUM
구조를 참조하세요.
COleControl::OnRenderFileData
스토리지 미디어가 파일일 때 지정된 형식으로 데이터를 검색하기 위해 프레임워크에서 호출됩니다.
virtual BOOL OnRenderFileData(
LPFORMATETC lpFormatEtc,
CFile* pFile);
매개 변수
lpFormatEtc
정보가 요청되는 형식을 지정하는 FORMATETC 구조를 가리킵니다.
pFile
데이터를 렌더링할 CFile 개체를 가리킵니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
지정된 형식은 지연된 렌더링에 DelayRenderData 멤버 함수를 사용하여 컨트롤 개체에 이전에 배치된 형식입니다. 이 함수의 기본 구현은 단순히 FALSE를 반환합니다.
요청된 형식 및 중간 형식으로 데이터를 제공하도록 이 함수를 재정의합니다. 데이터에 따라 이 함수의 다른 버전 중 하나를 대신 재정의할 수 있습니다. 여러 스토리지 매체를 처리하려면 재정 OnRenderData
의합니다. 데이터가 파일에 있거나 가변 크기인 경우 재정 OnRenderFileData
의합니다.
자세한 내용은 Windows SDK의 FORMATETC
구조를 참조하세요.
COleControl::OnRenderGlobalData
지정된 스토리지 매체가 전역 메모리일 때 지정된 형식으로 데이터를 검색하기 위해 프레임워크에서 호출됩니다.
virtual BOOL OnRenderGlobalData(
LPFORMATETC lpFormatEtc,
HGLOBAL* phGlobal);
매개 변수
lpFormatEtc
정보가 요청되는 형식을 지정하는 FORMATETC 구조를 가리킵니다.
phGlobal
데이터를 반환할 전역 메모리에 대한 핸들을 가리킵니다. 메모리가 할당되지 않은 경우 이 매개 변수는 NULL일 수 있습니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
지정된 형식은 지연된 렌더링에 DelayRenderData 멤버 함수를 사용하여 컨트롤 개체에 이전에 배치된 형식입니다. 이 함수의 기본 구현은 단순히 FALSE를 반환합니다.
phGlobal이 NULL이면 새 HGLOBAL을 할당하고 phGlobal에서 반환해야 합니다. 그렇지 않으면 phGlobal에서 지정한 HGLOBAL 을 데이터로 채워야 합니다. HGLOBAL에 배치된 데이터의 양은 메모리 블록의 현재 크기를 초과해서는 안 합니다. 또한 블록을 더 큰 크기로 다시 할당할 수 없습니다.
요청된 형식 및 중간 형식으로 데이터를 제공하도록 이 함수를 재정의합니다. 데이터에 따라 이 함수의 다른 버전 중 하나를 대신 재정의할 수 있습니다. 여러 스토리지 매체를 처리하려면 재정 OnRenderData
의합니다. 데이터가 파일에 있거나 가변 크기인 경우 재정 OnRenderFileData
의합니다.
자세한 내용은 Windows SDK의 FORMATETC
구조를 참조하세요.
COleControl::OnResetState
컨트롤의 속성을 기본값으로 설정해야 하는 경우 프레임워크에서 호출됩니다.
virtual void OnResetState();
설명
기본 구현은 DoPropExchange를 CPropExchange
호출하여 속성을 기본값으로 설정하는 개체를 전달합니다.
컨트롤 작성기는 이 재정의 가능한 OLE 컨트롤에 대한 초기화 코드를 삽입할 수 있습니다. 이 함수는 IPersistStream::Load
또는 IPersistStorage::Load
를 먼저 호출하지 않고 IPersistStream::load 또는 IPersistStorage::Load가 실패하거나IPersistStreamInit::InitNew 또는 IPersistStorage::InitNew가 호출될 때 호출됩니다.
COleControl::OnSetClientSite
컨테이너가 컨트롤의 IOleControl::SetClientSite
함수를 호출할 때 프레임워크에서 호출됩니다.
virtual void OnSetClientSite();
설명
기본적으로 OnSetClientSite
데이터 경로 속성이 로드되는지 여부를 확인하고, 로드된 경우 호출 DoDataPathPropExchange
합니다.
이 알림의 특수한 처리를 수행하도록 이 함수를 재정의합니다. 특히 이 함수의 재정의는 기본 클래스를 호출해야 합니다.
COleControl::OnSetData
컨트롤의 데이터를 지정된 데이터로 바꾸기 위해 프레임워크에서 호출됩니다.
virtual BOOL OnSetData(
LPFORMATETC lpFormatEtc,
LPSTGMEDIUM lpStgMedium,
BOOL bRelease);
매개 변수
lpFormatEtc
데이터 형식을 지정하는 FORMATETC 구조체에 대한 포인터입니다.
lpStgMedium
데이터가 상주하는 STGMEDIUM 구조체에 대한 포인터입니다.
bRelease
컨트롤이 스토리지 매체를 해제해야 하는 경우 TRUE입니다. 컨트롤이 스토리지 매체를 해제하지 않아야 하는 경우 FALSE입니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
데이터가 영구 속성 집합 형식인 경우 기본 구현은 컨트롤의 상태를 적절하게 수정합니다. 그렇지 않으면 기본 구현은 아무 작업도 수행하지 않습니다. bRelease가 TRUE이면 호출이 이루어지고, 그렇지 않으면 호출 ReleaseStgMedium
되지 않습니다.
컨트롤의 데이터를 지정된 데이터로 바꾸려면 이 함수를 재정의합니다.
자세한 내용은 Windows SDK의 FORMATETC
구조 및 STGMEDIUM
구조를 참조하세요.
COleControl::OnSetExtent
IOleObject::SetExtent 호출의 결과로 컨트롤의 익스텐트를 변경해야 하는 경우 프레임워크에서 호출됩니다.
virtual BOOL OnSetExtent(LPSIZEL lpSizeL);
매개 변수
lpSizeL
HIMETRIC 단위로 SIZEL
표현된 컨트롤의 너비와 높이를 나타내기 위해 긴 정수로 사용되는 구조체에 대한 포인터입니다.
Return Value
크기 변경이 수락된 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
기본 구현은 컨트롤의 익스텐트 크기 조정을 처리합니다. 컨트롤이 현재 위치 활성 상태이면 컨테이너 OnPosRectChanged
에 대한 호출이 이루어집니다.
컨트롤의 기본 크기 조정을 변경하려면 이 함수를 재정의합니다.
COleControl::OnSetObjectRects
IOleInPlaceObject::SetObjectRects에 대한 호출을 구현하기 위해 프레임워크에서 호출됩니다.
virtual BOOL OnSetObjectRects(
LPCRECT lpRectPos,
LPCRECT lpRectClip);
매개 변수
lpRectPos
컨테이너를 RECT
기준으로 컨트롤의 새 위치와 크기를 나타내는 구조체에 대한 포인터입니다.
lpRectClip
컨트롤을 RECT
잘려야 하는 사각형 영역을 나타내는 구조체에 대한 포인터입니다.
Return Value
위치 변경이 수락된 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
기본 구현은 컨트롤 창의 위치 변경 및 크기 조정을 자동으로 처리하고 TRUE를 반환합니다.
이 함수의 기본 동작을 변경하려면 이 함수를 재정의합니다.
COleControl::OnShowToolBars
컨트롤이 UI 활성화되었을 때 프레임워크에서 호출됩니다.
virtual void OnShowToolBars();
설명
기본 구현은 아무 작업도 수행하지 않습니다.
COleControl::OnTextChanged
스톡 캡션 또는 텍스트 속성 값이 변경될 때 프레임워크에서 호출됩니다.
virtual void OnTextChanged();
설명
기본 구현은 .를 호출합니다 InvalidateControl
.
이 속성이 변경된 후 알림을 원하는 경우 이 함수를 재정의합니다.
COleControl::OnWindowlessMessage
컨테이너 IOleInPlaceObjectWindowless::OnWindowMessage
의 요청에 대한 응답으로 프레임워크에서 호출됩니다.
virtual BOOL OnWindowlessMessage(
UINT msg,
WPARAM wParam,
LPARAM lParam,
LRESULT* plResult);
매개 변수
msg
Windows에서 전달한 메시지 식별자입니다.
wParam
Windows에서 전달한 대로. 추가 메시지 관련 정보를 지정합니다. 이 매개 변수의 내용은 msg 매개 변수의 값에 따라 달라집니다.
lParam
Windows에서 전달한 대로. 추가 메시지 관련 정보를 지정합니다. 이 매개 변수의 내용은 msg 매개 변수의 값에 따라 달라집니다.
plResult
Windows 결과 코드입니다. 메시지 처리 결과를 지정하고 보낸 메시지에 따라 달라집니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
창 없는 컨트롤에 대한 창 메시지를 처리합니다. COleControl
'은 OnWindowlessMessage
마우스 메시지 및 키보드 메시지 이외의 창 메시지에 사용해야 합니다. COleControl
는 특히 창 없는 OLE 개체에 대한 마우스 캡처 및 키보드 포커스를 가져오기 위해 SetCapture 및 SetFocus를 제공합니다.
창 없는 개체에는 창이 없으므로 컨테이너가 메시지를 디스패치하도록 하는 메커니즘이 필요합니다. 창 없는 OLE 개체는 인터페이스의 메서드IOleInPlaceObjectWindowless
(창 없는 지원을 위한 IOleInPlaceObject의 확장)를 통해 OnWindowMessage
컨테이너에서 메시지를 가져옵니다. OnWindowMessage
은 매개 변수를 HWND
사용하지 않습니다.
COleControl::ParentToClient
pPoint의 좌표를 클라이언트 좌표로 변환합니다.
virtual UINT ParentToClient(
LPCRECT lprcBounds,
LPPOINT pPoint,
BOOL bHitTest = FALSE) const;
매개 변수
lprcBounds
컨테이너 내의 OLE 컨트롤 경계에 대한 포인터입니다. 클라이언트 영역이 아니라 테두리 및 스크롤 막대를 포함한 전체 컨트롤의 영역입니다.
pPoint
컨트롤의 클라이언트 영역 좌표로 변환할 부모(컨테이너) 지점에 대한 포인터입니다.
bHitTest
적중 점에 대한 테스트를 수행할지 여부를 지정합니다.
Return Value
bHitTest가 FALSE이면 HTNOWHERE를 반환합니다. bHitTest가 TRUE이면 부모(컨테이너) 지점이 OLE 컨트롤의 클라이언트 영역에 착륙한 위치를 반환하며 다음 마우스 적중 테스트 값 중 하나입니다.
HTBORDER 크기 조정 테두리가 없는 창의 테두리에 있습니다.
HTBOTTOM 창의 아래쪽 가로 테두리에 있습니다.
HTBOTTOMLEFT 창 테두리의 왼쪽 아래 모서리에 있습니다.
HTBOTTOMRIGHT 창 테두리의 오른쪽 아래 모서리에 있습니다.
제목 표시줄 영역의 HTCAPTION.
HTCLIENT 클라이언트 영역에 있습니다.
화면 배경 또는 창 간 구분선에서 HTERROR(Windows 함수가 오류를 나타내는 시스템 경고음을 생성한다는 점을
DefWndProc
제외하고 HTNOWHERE와 동일).크기 상자의 HTGROWBOX입니다.
가로 스크롤 막대의 HTHSCROLL입니다.
HTLEFT 창의 왼쪽 테두리에 있습니다.
최대화 단추의 HTMAXBUTTON
메뉴 영역의 HTMENU
최소화 단추의 HTMINBUTTON
HTNOWHERE 화면 배경 또는 창 사이의 구분선에 있습니다.
최소화 단추의 HTREDUCE
HTRIGHT 창의 오른쪽 테두리에 있습니다.
HTSIZE 크기 상자(HTGROWBOX와 동일).
HTSYSMENU 컨트롤 메뉴 또는 자식 창의 닫기 단추
HTTOP 창의 위쪽 가로 테두리에 있습니다.
HTTOPLEFT 창 테두리의 왼쪽 위 모서리에 있습니다.
HTTOPRIGHT 창 테두리의 오른쪽 위 모서리에 있습니다.
HTTRANSPARENT 현재 다른 창이 적용되는 창에 있습니다.
세로 스크롤 막대의 HTVSCROLL입니다.
최대화 단추의 HTZOOM입니다.
설명
입력 에서 pPoint 는 부모(컨테이너의 왼쪽 위 모서리)의 원본을 기준으로 합니다. 출력 에서 pPoint 는 OLE 컨트롤의 클라이언트 영역 원본(컨트롤의 클라이언트 영역 왼쪽 위 모서리)을 기준으로 합니다.
COleControl::PostModalDialog
모달 대화 상자가 닫혔는지 컨테이너에 알합니다.
void PostModalDialog(HWND hWndParent = NULL);
매개 변수
hWndParent
모달 대화 상자의 부모 창에 대한 핸들입니다.
설명
모달 대화 상자를 표시한 후 이 함수를 호출합니다. 컨테이너에서 사용하지 않도록 설정된 최상위 창을 PreModalDialog
사용하도록 설정할 수 있도록 이 함수를 호출해야 합니다. 이 함수는 에 대한 호출과 페어링되어야 합니다 PreModalDialog
.
COleControl::PreModalDialog
모달 대화 상자가 표시될 예정임을 컨테이너에 알깁니다.
void PreModalDialog(HWND hWndParent = NULL);
매개 변수
hWndParent
모달 대화 상자의 부모 창에 대한 핸들입니다.
설명
모달 대화 상자를 표시하기 전에 이 함수를 호출합니다. 컨테이너가 모든 최상위 창을 사용하지 않도록 설정할 수 있도록 이 함수를 호출해야 합니다. 모달 대화 상자가 표시되면 호출 PostModalDialog
해야 합니다.
COleControl::RecreateControlWindow
컨트롤의 창을 삭제하고 다시 만듭니다.
void RecreateControlWindow();
설명
창의 스타일 비트를 변경해야 하는 경우 필요할 수 있습니다.
COleControl::Refresh
OLE 컨트롤을 강제로 다시 칠합니다.
void Refresh();
설명
이 함수는 기본 클래스에서 COleControl
Refresh라는 스톡 메서드로 지원됩니다. 이렇게 하면 OLE 컨트롤의 사용자가 특정 시간에 컨트롤을 다시 칠할 수 있습니다. 이 메서드에 대한 자세한 내용은 ActiveX 컨트롤: 메서드 문서를 참조하세요.
COleControl::ReleaseCapture
마우스 캡처를 해제합니다.
BOOL ReleaseCapture();
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
컨트롤에 현재 마우스 캡처가 있는 경우 캡처가 해제됩니다. 그렇지 않으면 이 함수는 아무런 영향을 주지 않습니다.
COleControl::ReleaseDC
창 없는 컨트롤 컨테이너의 디스플레이 디바이스 컨텍스트를 해제하여 다른 애플리케이션에서 사용할 디바이스 컨텍스트를 해제합니다.
int ReleaseDC(CDC* pDC);
매개 변수
pDC
해제할 컨테이너 디바이스 컨텍스트를 식별합니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
애플리케이션은 GetDC에 대한 각 호출을 호출 ReleaseDC
해야 합니다.
COleControl::ReparentControlWindow
컨트롤의 부모를 설정합니다.
virtual void ReparentControlWindow(
HWND hWndOuter,
HWND hWndParent);
매개 변수
hWndOuter
컨트롤 창의 핸들입니다.
hWndParent
새 부모 창의 핸들입니다.
설명
컨트롤 창의 부모를 다시 설정하려면 이 함수를 호출합니다.
COleControl::ResetStockProps
주식 속성의 COleControl
상태를 기본값으로 초기화합니다.
void ResetStockProps();
설명
속성은 모양, BackColor, BorderStyle, Caption, Enabled, Font, ForeColor, hWnd 및 Text입니다. 주식 속성에 대한 설명은 ActiveX 컨트롤: 스톡 속성 추가를 참조 하세요.
컨트롤을 사용하고 ResetStockProps
ResetVersion
재정 COleControl::OnResetState
의하여 컨트롤의 이진 초기화 성능을 향상시킬 수 있습니다. 아래 예제를 참조하세요. 초기화 최적화에 대한 자세한 내용은 ActiveX 컨트롤: 최적화를 참조 하세요.
예시
void CMyAxCtrl::OnResetState()
{
ResetVersion(MAKELONG(_wVerMinor, _wVerMajor));
ResetStockProps();
// initialize custom properties here
}
COleControl::ResetVersion
버전 번호를 지정된 값으로 초기화합니다.
void ResetVersion(DWORD dwVersionDefault);
매개 변수
dwVersionDefault
컨트롤에 할당할 버전 번호입니다.
설명
컨트롤을 사용하고 ResetVersion
ResetStockProps
재정 COleControl::OnResetState
의하여 컨트롤의 이진 초기화 성능을 향상시킬 수 있습니다. ResetStockProps에서 예제를 참조하세요. 초기화 최적화에 대한 자세한 내용은 ActiveX 컨트롤: 최적화를 참조 하세요.
COleControl::ScrollWindow
창 없는 OLE 개체가 화면의 현재 위치 활성 이미지 내에서 영역을 스크롤할 수 있도록 허용합니다.
void ScrollWindow(
int xAmount,
int yAmount,
LPCRECT lpRect = NULL,
LPCRECT lpClipRect = NULL);
매개 변수
xAmount
가로 스크롤의 양(디바이스 단위)을 지정합니다. 이 매개 변수는 왼쪽으로 스크롤하려면 음수 값이어야 합니다.
yAmount
세로 스크롤의 양(디바이스 단위)을 지정합니다. 이 매개 변수는 위쪽으로 스크롤하려면 음수 값이어야 합니다.
lpRect
포함하는 창의 클라이언트 좌표에서 스크롤할 OLE 개체의 클라이언트 영역 부분을 지정하는 CRect 개체 또는 RECT 구조를 가리킵니다. lpRect가 NULL이면 전체 OLE 개체의 클라이언트 영역이 스크롤됩니다.
lpClipRect
클립할 사각형을 CRect
지정하는 개체 또는 RECT
구조를 가리킵니다. 사각형 내의 픽셀만 스크롤됩니다. 사각형 외부의 비트는 lpRect 사각형에 있더라도 영향을 받지 않습니다. lpClipRect가 NULL이면 스크롤 사각형에서 클리핑이 수행되지 않습니다.
COleControl::SelectFontObject
디바이스 컨텍스트에 대한 글꼴을 선택합니다.
CFont* SelectFontObject(
CDC* pDC,
CFontHolder& fontHolder);
매개 변수
pDC
디바이스 컨텍스트 개체에 대한 포인터입니다.
fontHolder
선택할 글꼴을 나타내는 CFontHolder 개체에 대한 참조입니다.
Return Value
이전에 선택한 글꼴에 대한 포인터입니다. 호출자가 fontHolder를 사용하는 모든 그리기 작업을 완료한 경우 CDC::SelectObject에 매개 변수로 전달하여 이전에 선택한 글꼴을 다시 선택해야 합니다.
COleControl::SelectStockFont
디바이스 컨텍스트에 스톡 글꼴 속성을 선택합니다.
CFont* SelectStockFont(CDC* pDC);
매개 변수
pDC
글꼴을 선택할 디바이스 컨텍스트입니다.
Return Value
이전에 선택한 CFont
개체에 대한 포인터입니다. 완료되면 CDC::SelectObject를 사용하여 이 글꼴을 디바이스 컨텍스트로 다시 선택해야 합니다.
COleControl::SerializeExtent
컨트롤에 할당된 표시 공간의 상태를 직렬화하거나 초기화합니다.
void SerializeExtent(CArchive& ar);
매개 변수
ar
CArchive
직렬화할 개체입니다.
설명
를 사용하여 SerializeExtent
SerializeStockProps
SerializeVersion
컨트롤의 이진 지속성 성능을 개선하고 재정COleControl::Serialize
의할 수 있습니다. 아래 예제를 참조하세요. 초기화 최적화에 대한 자세한 내용은 ActiveX 컨트롤: 최적화를 참조 하세요.
예시
void CMyAxCtrl::Serialize(CArchive &ar)
{
SerializeVersion(ar, MAKELONG(_wVerMinor, _wVerMajor));
SerializeExtent(ar);
SerializeStockProps(ar);
if (ar.IsStoring())
{ // storing code
}
else
{ // loading code
}
}
COleControl::SerializeStockProps
주식 속성의 COleControl
상태를 직렬화하거나 초기화합니다. 모양, BackColor, BorderStyle, Caption, Enabled, Font, ForeColor 및 Text입니다.
void SerializeStockProps(CArchive& ar);
매개 변수
ar
CArchive
직렬화할 개체입니다.
설명
주식 속성에 대한 설명은 ActiveX 컨트롤: 스톡 속성 추가를 참조 하세요.
를 사용하여 SerializeStockProps
SerializeExtent
SerializeVersion
컨트롤의 이진 지속성 성능을 개선하고 재정COleControl::Serialize
의할 수 있습니다. 예를 들어 SerializeExtent의 코드를 참조하세요. 초기화 최적화에 대한 자세한 내용은 ActiveX 컨트롤: 최적화를 참조 하세요.
COleControl::SerializeVersion
컨트롤의 버전 정보의 상태를 직렬화하거나 초기화합니다.
DWORD SerializeVersion(
CArchive& ar,
DWORD dwVersionDefault,
BOOL bConvert = TRUE);
매개 변수
ar
CArchive
직렬화할 개체입니다.
dwVersionDefault
컨트롤의 현재 버전 번호입니다.
bConvert
영구 데이터가 저장될 때 최신 형식으로 변환되어야 하는지 또는 로드될 때와 동일한 형식으로 유지 관리되어야 하는지를 나타냅니다.
Return Value
컨트롤의 버전 번호입니다. 지정된 보관이 로드되는 SerializeVersion
경우 해당 보관 파일에서 로드된 버전을 반환합니다. 그렇지 않으면 현재 로드된 버전을 반환합니다.
설명
를 사용하여 SerializeVersion
SerializeExtent
SerializeStockProps
컨트롤의 이진 지속성 성능을 개선하고 재정COleControl::Serialize
의할 수 있습니다. 예를 들어 SerializeExtent의 코드를 참조하세요. 초기화 최적화에 대한 자세한 내용은 ActiveX 컨트롤: 최적화를 참조 하세요.
COleControl::SetAppearance
컨트롤의 Stock Appearance 속성 값을 설정합니다.
void SetAppearance (short sAppearance);
매개 변수
sAppearance
short
컨트롤의 모양에 사용할 (VT_I2) 값입니다. 값이 0이면 컨트롤의 모양이 플랫으로 설정되고 값이 1이면 컨트롤의 모양이 3D로 설정됩니다.
설명
스톡 속성에 대한 자세한 내용은 ActiveX 컨트롤: 속성을 참조 하세요.
COleControl::SetBackColor
컨트롤의 stock BackColor 속성 값을 설정합니다.
void SetBackColor(OLE_COLOR dwBackColor);
매개 변수
dwBackColor
컨트롤의 배경 그리기에 사용할 OLE_COLOR 값입니다.
설명
이 속성 및 기타 관련 속성을 사용하는 방법에 대한 자세한 내용은 ActiveX 컨트롤: 속성 문서를 참조하세요.
COleControl::SetBorderStyle
컨트롤의 stock BorderStyle 속성 값을 설정합니다.
void SetBorderStyle(short sBorderStyle);
매개 변수
sBorderStyle
컨트롤의 새 테두리 스타일입니다. 0은 테두리가 없음을 나타내고 1은 일반 테두리를 나타냅니다.
설명
그러면 컨트롤 창이 다시 만들어지고 OnBorderStyleChanged
호출됩니다.
COleControl::SetCapture
컨트롤의 컨테이너 창이 컨트롤을 대신하여 마우스 캡처를 소유하게 합니다.
CWnd* SetCapture();
Return Value
이전에 마우스 입력을 CWnd
받은 창 개체에 대한 포인터입니다.
설명
컨트롤이 활성화되고 창이 없는 경우 이 함수는 컨트롤을 대신하여 컨트롤의 컨테이너 창에서 마우스 캡처를 소유하게 합니다. 그렇지 않으면 이 함수를 사용하면 컨트롤 자체가 마우스 캡처(예: CWnd::SetCapture
)를 소유하게 됩니다.
COleControl::SetControlSize
OLE 컨트롤 창의 크기를 설정하고 컨트롤 사이트가 변경 중임을 컨테이너에 알립니다.
BOOL SetControlSize(int cx, int cy);
매개 변수
cx
컨트롤의 새 너비를 픽셀 단위로 지정합니다.
cy
컨트롤의 새 높이를 픽셀 단위로 지정합니다.
Return Value
호출에 성공하면 0이 아닌 값입니다. 그렇지 않으면 0입니다.
설명
이 함수는 컨트롤의 생성자에서 사용하면 안 됩니다.
컨트롤 창의 모든 좌표는 컨트롤의 왼쪽 위 모서리를 기준으로 합니다.
COleControl::SetEnabled
컨트롤의 stock Enabled 속성 값을 설정합니다.
void SetEnabled(BOOL bEnabled);
매개 변수
bEnabled
컨트롤을 사용하도록 설정하려면 TRUE이고, 그렇지 않으면 FALSE입니다.
설명
이 속성을 OnEnabledChange
설정한 후 호출됩니다.
COleControl::SetFocus
컨트롤의 컨테이너 창이 컨트롤을 대신하여 입력 포커스를 소유하게 합니다.
CWnd* SetFocus();
Return Value
이전에 입력 포커스가 있었던 창 개체에 CWnd
대한 포인터이거나, 이러한 창이 없으면 NULL입니다.
설명
컨트롤이 활성화되고 창이 없는 경우 이 함수는 컨트롤의 컨테이너 창이 컨트롤을 대신하여 입력 포커스를 소유하게 합니다. 입력 포커스는 키보드 입력을 컨테이너 창으로 전달하고 컨테이너는 모든 후속 키보드 메시지를 호출 SetFocus
하는 OLE 개체로 디스패치합니다. 이전에 입력 포커스가 있던 모든 창이 손실됩니다.
컨트롤이 창이 없는 경우 이 함수를 사용하면 컨트롤 자체가 입력 포커스(예: CWnd::SetFocus
)를 소유하게 됩니다.
COleControl::SetFont
컨트롤의 stock Font 속성을 설정합니다.
void SetFont(LPFONTDISP pFontDisp);
매개 변수
pFontDisp
글꼴 디스패치 인터페이스에 대한 포인터입니다.
COleControl::SetForeColor
컨트롤의 Stock ForeColor 속성 값을 설정합니다.
void SetForeColor(OLE_COLOR dwForeColor);
매개 변수
dwForeColor
컨트롤의 전경 그리기에 사용할 OLE_COLOR 값입니다.
설명
이 속성 및 기타 관련 속성을 사용하는 방법에 대한 자세한 내용은 ActiveX 컨트롤: 속성 문서를 참조하세요.
COleControl::SetInitialDataFormats
컨트롤에서 지원하는 데이터 형식 목록을 초기화하기 위해 프레임워크에서 호출됩니다.
virtual void SetInitialDataFormats();
설명
기본 구현은 CF_METAFILEPICT 및 영구 속성 집합의 두 가지 형식을 지정합니다.
COleControl::SetInitialSize
컨테이너에 처음 표시될 때 OLE 컨트롤의 크기를 설정합니다.
void SetInitialSize(
int cx,
int cy);
매개 변수
cx
OLE 컨트롤의 초기 너비(픽셀)입니다.
cy
OLE 컨트롤의 초기 높이(픽셀)입니다.
설명
생성자에서 이 함수를 호출하여 컨트롤의 초기 크기를 설정합니다. 초기 크기는 디바이스 단위 또는 픽셀로 측정됩니다. 컨트롤의 생성자에서 이 호출을 수행하는 것이 좋습니다.
COleControl::SetModifiedFlag
컨트롤의 수정된 상태를 변경합니다.
void SetModifiedFlag(BOOL bModified = TRUE);
매개 변수
bModified
컨트롤의 수정된 플래그에 대한 새 값입니다. TRUE는 컨트롤의 상태가 수정되었음을 나타냅니다. FALSE는 컨트롤의 상태가 방금 저장되었음을 나타냅니다.
설명
컨트롤의 영구 상태에 영향을 주는 변경이 발생할 때마다 이 함수를 호출합니다. 예를 들어 영구 속성 값이 변경되면 bModified TRUE를 사용하여 이 함수를 호출합니다.
COleControl::SetNotPermitted
편집 요청이 실패했음을 나타냅니다.
void SetNotPermitted();
설명
실패하면 BoundPropertyRequestEdit
이 함수를 호출합니다. 이 함수는 형식의 COleDispScodeException
예외를 throw하여 집합 작업이 허용되지 않았음을 나타냅니다.
COleControl::SetNotSupported
사용자가 컨트롤의 속성 값을 수정할 수 없도록 합니다.
void SetNotSupported();
설명
컨트롤 사용자에 의한 속성 값 수정이 지원되지 않는 속성의 Set 함수 대신 이 함수를 호출합니다. 한 가지 예는 읽기 전용인 속성입니다.
COleControl::SetRectInContainer
디바이스 단위로 표현된 컨테이너를 기준으로 컨트롤 사각형의 좌표를 설정합니다.
BOOL SetRectInContainer(LPCRECT lpRect);
매개 변수
lpRect
컨테이너를 기준으로 컨트롤의 새 좌표를 포함하는 사각형에 대한 포인터입니다.
Return Value
호출에 성공하면 0이 아닌 값입니다. 그렇지 않으면 0입니다.
설명
컨트롤이 열려 있으면 크기가 조정됩니다. 그렇지 않으면 컨테이너의 OnPosRectChanged
함수가 호출됩니다.
COleControl::SetText
컨트롤의 stock Caption 또는 Text 속성 값을 설정합니다.
void SetText(LPCTSTR pszText);
매개 변수
pszText
문자열에 대한 포인터입니다.
설명
주식 캡션 및 텍스트 속성은 모두 동일한 값에 매핑됩니다. 즉, 두 속성을 모두 변경하면 두 속성이 자동으로 변경됩니다. 일반적으로 컨트롤은 주식 캡션 또는 텍스트 속성을 지원해야 하지만 둘 다 지원되지는 않습니다.
COleControl::ThrowError
컨트롤에서 오류가 발생되었음을 알릴 수 있습니다.
void ThrowError(
SCODE sc,
UINT nDescriptionID,
UINT nHelpID = -1);
void ThrowError(
SCODE sc,
LPCTSTR pszDescription = NULL,
UINT nHelpID = 0);
매개 변수
sc
보고할 상태 코드 값입니다. 가능한 코드의 전체 목록은 ActiveX 컨트롤: 고급 항목 문서를 참조하세요.
nDescriptionID
보고할 예외의 문자열 리소스 ID입니다.
nHelpID
보고할 항목의 도움말 ID입니다.
pszDescription
보고할 예외에 대한 설명이 포함된 문자열입니다.
설명
이 함수는 OLE 속성 또는 OLE 자동화 메서드의 구현에 대한 Get 또는 Set 함수 내에서만 호출해야 합니다. 다른 시간에 발생하는 오류를 신호로 표시해야 하는 경우 주식 오류 이벤트를 발생시켜야 합니다.
COleControl::TransformCoords
HIMETRIC 단위와 컨테이너의 네이티브 단위 간에 좌표 값을 변환합니다.
void TransformCoords(
POINTL* lpptlHimetric,
POINTF* lpptfContainer,
DWORD flags);
매개 변수
lpptlHimetric
HIMETRIC 단위의 POINTL
좌표를 포함하는 구조체에 대한 포인터입니다.
lpptfContainer
POINTF
컨테이너 단위 크기의 좌표를 포함하는 구조체에 대한 포인터입니다.
flags
다음 값의 조합입니다.
XFORMCOORDS_POSITION 컨테이너의 위치입니다.
XFORMCOORDS_SIZE 컨테이너의 크기입니다.
XFORMCOORDS_HIMETRICTOCONTAINER HIMETRIC 단위를 컨테이너 단위로 변환합니다.
XFORMCOORDS_CONTAINERTOHIMETRIC 컨테이너의 단위를 HIMETRIC 단위로 변환합니다.
설명
XFORMCOORDS_POSITION 및 XFORMCOORDS_SIZE 처음 두 플래그는 좌표를 위치 또는 크기로 처리해야 하는지 여부를 나타냅니다. 나머지 두 플래그는 변환 방향을 나타냅니다.
COleControl::TranslateColor
색 값을 OLE_COLOR 데이터 형식에서 COLORREF 데이터 형식으로 변환합니다.
COLORREF TranslateColor(
OLE_COLOR clrColor,
HPALETTE hpal = NULL);
매개 변수
clrColor
OLE_COLOR 데이터 형식입니다. 자세한 내용은 Windows OleTranslateColor 함수를 참조하세요.
hpal
선택적 색상표에 대한 핸들입니다. 은 NULL일 수 있습니다.
Return Value
디바이스가 나타낼 수 있는 clrColor 값에 가장 가까운 단색을 정의하는 RGB(빨강, 녹색, 파랑) 32비트 색 값입니다.
설명
이 함수는 주식 ForeColor 및 BackColor 속성을 CDC 멤버 함수에서 사용하는 COLORREF 형식으로 변환하는 데 유용합니다.
COleControl::WillAmbientsBeValidDuringLoad
이후에 영구 상태에서 로드될 때 컨트롤이 앰비언트 속성의 값을 기본값으로 사용해야 하는지 여부를 결정합니다.
BOOL WillAmbientsBeValidDuringLoad();
Return Value
0이 아닌 경우 앰비언트 속성이 유효함을 나타냅니다. 그렇지 않으면 앰비언트 속성이 유효하지 않습니다.
설명
일부 컨테이너에서는 재정의 COleControl::DoPropExchange
를 처음 호출하는 동안 컨트롤이 해당 앰비언트 속성에 액세스할 수 없을 수 있습니다. 컨테이너가 IOleObject::SetClientSite를 호출하기 전에 IPersistStreamInit::Load 또는 IPersistStorage::Load를 호출하는 경우입니다(즉, OLEMISC_SETCLIENTSITEFIRST 상태 비트를 적용하지 않는 경우).
COleControl::WindowProc
개체에 대한 Windows 프로시저를 COleControl
제공합니다.
virtual LRESULT WindowProc(
UINT message,
WPARAM wParam,
LPARAM lParam);
매개 변수
message
처리할 Windows 메시지를 지정합니다.
wParam
메시지 처리에 사용되는 추가 정보를 제공합니다. 매개 변수 값은 메시지에 따라 달라집니다.
lParam
메시지 처리에 사용되는 추가 정보를 제공합니다. 매개 변수 값은 메시지에 따라 달라집니다.
Return Value
디스패치된 메시지의 반환 값입니다.
설명
컨트롤의 메시지 맵을 통해 특정 메시지를 디스패치하려면 이 함수를 호출합니다.
참고 항목
MFC 샘플 CIRC3
MFC 샘플 TESTHELP
COlePropertyPage 클래스
CWnd 클래스
계층 구조 차트
CFontHolder 클래스
CPictureHolder 클래스