다음을 통해 공유


CComControlBase 클래스

이 클래스는 ATL 컨트롤을 만들고 관리하기 위한 메서드를 제공합니다.

Important

이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.

구문

class ATL_NO_VTABLE CComControlBase

멤버

공용 Typedefs

이름 설명
CComControlBase::AppearanceType 주식 속성이 형식short이 아닌 경우 m_nAppearance 재정의합니다.

공용 생성자

속성 설명
CComControlBase::CComControlBase 생성자입니다.
CComControlBase::~CComControlBase 소멸자입니다.

공용 메서드

이름 설명
CComControlBase::ControlQueryInterface 요청된 인터페이스에 대한 포인터를 검색합니다.
CComControlBase::DoesVerbActivate iVerb 매개 변수에서 사용하는 iVerb 매개 변수가 컨트롤의 사용자 인터페이스를 활성화하거나(iVerb이 OLEIVERB_UIACTIVATE 같음) 사용자가 컨트롤을 두 번 클릭하거나(iVerb이 OLEIVERB_PRIMARY 같음) 컨트롤을 표시하거나(iVerb이 OLEIVERB_SHOW 같음) 컨트롤을 활성화할 때 수행되는 작업을 정의하는지 확인합니다(iVerb은 OLEIVERB_INPLACEACTIVATE 같음).IOleObjectImpl::DoVerb
CComControlBase::DoesVerbUIActivate 컨트롤의 사용자 인터페이스가 IOleObjectImpl::DoVerb 활성화되고 TRUE를 반환하는 데 사용되는 iVerb 매개 변수가 있는지 확인합니다.
CComControlBase::DoVerbProperties 컨트롤의 속성 페이지를 표시합니다.
CComControlBase::FireViewChange 이 메서드를 호출하여 컨테이너에 컨트롤을 다시 그리도록 지시하거나 등록된 조언 싱크에 컨트롤의 보기가 변경되었음을 알립니다.
CComControlBase::GetAmbientAppearance 컨트롤의 현재 모양 설정인 DISPID_AMBIENT_APPEARANCE 검색합니다. 플랫의 경우 0, 3D의 경우 1입니다.
CComControlBase::GetAmbientAutoClip 컨테이너가 컨트롤 표시 영역의 자동 클리핑을 지원하는지 여부를 나타내는 플래그인 DISPID_AMBIENT_AUTOCLIP 검색합니다.
CComControlBase::GetAmbientBackColor 컨테이너에서 정의한 모든 컨트롤의 앰비언트 배경색인 DISPID_AMBIENT_BACKCOLOR 검색합니다.
CComControlBase::GetAmbientCharSet 컨테이너에서 정의한 모든 컨트롤에 대해 설정된 앰비언트 문자 집합인 DISPID_AMBIENT_CHARSET 검색합니다.
CComControlBase::GetAmbientCodePage 컨테이너에서 정의한 모든 컨트롤에 대해 설정된 앰비언트 문자 집합인 DISPID_AMBIENT_CODEPAGE 검색합니다.
CComControlBase::GetAmbientDisplayAsDefault 컨테이너가 이 사이트의 컨트롤을 기본 단추로 표시한 경우 TRUE인 플래그인 DISPID_AMBIENT_DISPLAYASDEFAULT 검색하므로 단추 컨트롤이 더 두꺼운 프레임으로 자신을 그려야 합니다.
CComControlBase::GetAmbientDisplayName 컨테이너가 컨트롤에 제공한 이름인 DISPID_AMBIENT_DISPLAYNAME 검색합니다.
CComControlBase::GetAmbientFont 컨테이너의 앰비언트 IFont 인터페이스에 대한 포인터를 검색합니다.
CComControlBase::GetAmbientFontDisp 컨테이너의 앰비언트 IFontDisp 디스패치 인터페이스에 대한 포인터를 검색합니다.
CComControlBase::GetAmbientForeColor 컨테이너에서 정의한 모든 컨트롤의 앰비언트 전경색인 DISPID_AMBIENT_FORECOLOR 검색합니다.
CComControlBase::GetAmbientLocaleID 컨테이너에서 사용하는 언어의 식별자인 DISPID_AMBIENT_LOCALEID 검색합니다.
CComControlBase::GetAmbientMessageReflect 컨테이너가 창 메시지(예: WM_DRAWITEM)를 이벤트로 수신할지 여부를 나타내는 플래그인 DISPID_AMBIENT_MESSAGEREFLECT 검색합니다.
CComControlBase::GetAmbientPalette 컨테이너의 HPALETTE에 액세스하는 데 사용되는 DISPID_AMBIENT_PALETTE 검색합니다.
CComControlBase::GetAmbientProperty ID로 지정된 컨테이너 속성을 검색합니다.
CComControlBase::GetAmbientRightToLeft 컨테이너에서 콘텐츠가 표시되는 방향인 DISPID_AMBIENT_RIGHTTOLEFT 검색합니다.
CComControlBase::GetAmbientScaleUnits 레이블 지정 표시를 위해 컨테이너의 앰비언트 단위(예: 인치 또는 센티미터)인 DISPID_AMBIENT_SCALEUNITS 검색합니다.
CComControlBase::GetAmbientShowGrabHandles 컨테이너가 활성 상태일 때 컨트롤이 자체적으로 잡기 핸들을 표시할 수 있는지 여부를 나타내는 플래그인 DISPID_AMBIENT_SHOWGRABHANDLES 검색합니다.
CComControlBase::GetAmbientShowHatching UI가 활성 상태일 때 컨테이너가 빗살 무늬 패턴으로 컨트롤을 표시할 수 있는지 여부를 나타내는 플래그인 DISPID_AMBIENT_SHOWHATCHING 검색합니다.
CComControlBase::GetAmbientSupportsMnemonics 컨테이너가 키보드 니모닉을 지원하는지 여부를 나타내는 플래그인 DISPID_AMBIENT_SUPPORTSMNEMONICS 검색합니다.
CComControlBase::GetAmbientTextAlign 컨테이너에서 선호하는 텍스트 맞춤인 DISPID_AMBIENT_TEXTALIGN 검색합니다. 일반 맞춤(숫자 오른쪽, 왼쪽 텍스트)의 경우 0, 왼쪽 맞춤의 경우 1, 가운데 맞춤의 경우 2, 오른쪽 맞춤의 경우 3을 검색합니다.
CComControlBase::GetAmbientTopToBottom 컨테이너에서 콘텐츠가 표시되는 방향인 DISPID_AMBIENT_TOPTOBOTTOM 검색합니다.
CComControlBase::GetAmbientUIDead 컨테이너가 컨트롤이 사용자 인터페이스 작업에 응답하도록 할지 여부를 나타내는 플래그인 DISPID_AMBIENT_UIDEAD 검색합니다.
CComControlBase::GetAmbientUserMode 컨테이너가 실행 모드(TRUE) 또는 디자인 모드(FALSE)인지 여부를 나타내는 플래그인 DISPID_AMBIENT_USERMODE 검색합니다.
CComControlBase::GetDirty 데이터 멤버 m_bRequiresSave의 값을 반환합니다.
CComControlBase::GetZoomInfo 현재 위치 편집을 위해 활성화된 컨트롤에 대한 확대/축소 비율의 숫자 및 분모의 x 및 y 값을 검색합니다.
CComControlBase::InPlaceActivate 컨트롤이 비활성 상태에서 iVerb의 동사가 나타내는 상태로 전환되도록 합니다.
CComControlBase::InternalGetSite 식별된 인터페이스에 대한 포인터에 대한 컨트롤 사이트를 쿼리하려면 이 메서드를 호출합니다.
CComControlBase::OnDraw 컨트롤을 그리려면 이 메서드를 재정의합니다.
CComControlBase::OnDrawAdvanced 기본값 OnDrawAdvanced 은 그리기를 위해 정규화된 디바이스 컨텍스트를 준비한 다음 컨트롤 클래스의 OnDraw 메서드를 호출합니다.
CComControlBase::OnKillFocus 컨트롤이 현재 위치 활성 상태이고 유효한 컨트롤 사이트가 있는지 확인한 다음 컨트롤에 포커스가 손실되었음을 컨테이너에 알릴 수 있습니다.
CComControlBase::OnMouseActivate UI가 사용자 모드인지 확인한 다음 컨트롤을 활성화합니다.
CComControlBase::OnPaint 그리기 위해 컨테이너를 준비하고 컨트롤의 클라이언트 영역을 가져오고 컨트롤 클래스의 OnDraw 메서드를 호출합니다.
CComControlBase::OnSetFocus 컨트롤이 현재 위치 활성 상태이고 유효한 컨트롤 사이트가 있는지 확인한 다음 컨트롤이 포커스를 확보했음을 컨테이너에 알릴 수 있습니다.
CComControlBase::PreTranslateAccelerator 사용자 고유의 키보드 가속기 처리기를 제공하도록 이 메서드를 재정의합니다.
CComControlBase::SendOnClose 자문 소유자에게 등록된 모든 권고 싱크에 제어가 닫혔다는 것을 알 수 있습니다.
CComControlBase::SendOnDataChange 자문 소유자에게 등록된 모든 권고 싱크에 제어 데이터가 변경되었음을 알 수 있습니다.
CComControlBase::SendOnRename 컨트롤에 새로운 모니커가 있음을 자문 소유자에게 등록한 모든 자문 싱크에 알깁니다.
CComControlBase::SendOnSave 자문 소유자에게 등록된 모든 권고 싱크에 컨트롤이 저장되었음을 알 수 있습니다.
CComControlBase::SendOnViewChange 등록된 모든 권고 싱크에 컨트롤의 보기가 변경되었음을 알 수 있습니다.
CComControlBase::SetControlFocus 키보드 포커스를 컨트롤에서 설정하거나 제거합니다.
CComControlBase::SetDirty 데이터 멤버 m_bRequiresSave 를 bDirty의 값으로 설정합니다.

공용 데이터 멤버

이름 설명
CComControlBase::m_bAutoSize 컨트롤이 다른 크기일 수 없음을 나타내는 플래그입니다.
CComControlBase::m_bDrawFromNatural 컨트롤 크기를 m_sizeNaturalm_sizeExtent설정해야 함을 CComControlBase::GetZoomInfoIDataObjectImpl::GetData 나타내는 플래그입니다.
CComControlBase::m_bDrawGetDataInHimetric 그리는 경우 픽셀이 아닌 HIMETRIC 단위를 사용해야 함을 IDataObjectImpl::GetData 나타내는 플래그입니다.
CComControlBase::m_bInPlaceActive 컨트롤이 현재 위치 활성 상태임을 나타내는 플래그입니다.
CComControlBase::m_bInPlaceSiteEx 컨테이너가 창 없는 컨트롤 및 깜박임 없는 컨트롤과 같은 인터페이스 및 OCX96 컨트롤 기능을 지원 IOleInPlaceSiteEx 함을 나타내는 플래그입니다.
CComControlBase::m_bNegotiatedWnd 컨트롤이 OCX96 컨트롤 기능(예: 깜박임 없는 컨트롤 및 창 없는 컨트롤)에 대한 지원에 대해 컨테이너와 협상했는지 여부와 컨트롤이 창이 없는지 여부를 나타내는 플래그입니다.
CComControlBase::m_bRecomposeOnResize 컨테이너가 컨트롤의 표시 크기를 변경할 때 컨트롤이 프레젠테이션을 다시 컴파일하려고 함을 나타내는 플래그입니다.
CComControlBase::m_bRequiresSave 컨트롤이 마지막으로 저장된 이후 변경되었음을 나타내는 플래그입니다.
CComControlBase::m_bResizeNatural 컨테이너가 컨트롤의 표시 크기를 변경할 때 컨트롤의 자연 익스텐트(크기가 조정되지 않은 실제 크기)의 크기를 조정하려고 함을 나타내는 플래그입니다.
CComControlBase::m_bUIActive 메뉴 및 도구 모음과 같은 컨트롤의 사용자 인터페이스가 활성 상태임을 나타내는 플래그입니다.
CComControlBase::m_bUsingWindowRgn 컨트롤이 컨테이너 제공 창 영역을 사용하고 있음을 나타내는 플래그입니다.
CComControlBase::m_bWasOnceWindowless 컨트롤이 창이 없음을 나타내는 플래그이지만, 이제 창이 없을 수도 있으며 그렇지 않을 수도 있습니다.
CComControlBase::m_bWindowOnly 컨테이너가 창 없는 컨트롤을 지원하는 경우에도 컨트롤을 창에 표시해야 함을 나타내는 플래그입니다.
CComControlBase::m_bWndLess 컨트롤이 창이 없음을 나타내는 플래그입니다.
CComControlBase::m_hWndCD 컨트롤과 연결된 창 핸들에 대한 참조를 포함합니다.
CComControlBase::m_nFreezeEvents 이벤트의 중간 해동(이벤트 수락)없이 컨테이너가 이벤트를 동결(이벤트 수락 거부)한 횟수입니다.
CComControlBase::m_rcPos 컨테이너의 좌표로 표현된 컨트롤의 픽셀 단위 위치입니다.
CComControlBase::m_sizeExtent 특정 디스플레이에 대한 HIMETRIC 단위의 컨트롤 범위(각 단위는 0.01mm)입니다.
CComControlBase::m_sizeNatural HIMETRIC 단위로 컨트롤의 실제 크기(각 단위는 0.01mm)입니다.
CComControlBase::m_spAdviseSink 컨테이너의 권고 연결(컨테이너의 IAdviseSink)에 대한 직접 포인터입니다.
CComControlBase::m_spAmbientDispatch CComDispatchDriver 포인터를 통해 컨테이너의 속성을 검색하고 설정할 수 있는 개체입니다IDispatch.
CComControlBase::m_spClientSite 컨테이너 내에서 컨트롤의 클라이언트 사이트에 대한 포인터입니다.
CComControlBase::m_spDataAdviseHolder 데이터 개체 간에 권고 연결을 유지하고 싱크를 조언하는 표준 수단을 제공합니다.
CComControlBase::m_spInPlaceSite 컨테이너의 IOleInPlaceSite, IOleInPlaceSiteEx 또는 IOleInPlaceSiteWindowless 인터페이스 포인터에 대한 포인터입니다.
CComControlBase::m_spOleAdviseHolder 권고 연결을 유지하는 방법의 표준 구현을 제공합니다.

설명

이 클래스는 ATL 컨트롤을 만들고 관리하기 위한 메서드를 제공합니다. CComControl 클래스 는 .에서 CComControlBase파생됩니다. ATL 컨트롤 마법사를 사용하여 표준 컨트롤 또는 DHTML 컨트롤을 만들 때 마법사는 자동으로 클래스를 CComControlBase파생합니다.

컨트롤을 만드는 방법에 대한 자세한 내용은 ATL 자습서를 참조하세요. ATL 프로젝트 마법사에 대한 자세한 내용은 ATL 프로젝트 만들기 문서를 참조하세요.

요구 사항

헤더: atlctl.h

CComControlBase::AppearanceType

주식 속성이 형식short이 아닌 경우 m_nAppearance 재정의합니다.

typedef short AppearanceType;

설명

ATL 컨트롤 마법사는 short 형식의 스톡 속성을 추가합니다 m_nAppearance . 다른 데이터 형식을 사용하는 경우 재정 AppearanceType 의합니다.

CComControlBase::CComControlBase

생성자입니다.

CComControlBase(HWND& h);

매개 변수

시간
컨트롤과 연결된 창에 대한 핸들입니다.

설명

컨트롤 크기를 5080X5080 HIMETRIC 단위(2"X2")로 초기화하고 데이터 멤버 값을 NULL 또는 FALSE로 초기화합니다 CComControlBase .

CComControlBase::~CComControlBase

소멸자입니다.

~CComControlBase();

설명

컨트롤이 창 ~CComControlBase 에 있으면 DestroyWindow를 호출하여 삭제합니다.

CComControlBase::ControlQueryInterface

요청된 인터페이스에 대한 포인터를 검색합니다.

virtual HRESULT ControlQueryInterface(const IID& iid,
    void** ppv);

매개 변수

iid
요청되는 인터페이스의 GUID입니다.

ppv
iid로 식별되는 인터페이스 포인터에 대한 포인터이거나, 인터페이스를 찾을 수 없는 경우 NULL입니다.

설명

COM 맵 테이블의 인터페이스만 처리합니다.

예시

// Retrieve the control's IOleObject interface. Note interface 
// is automatically released when pOleObject goes out of scope

CComPtr<IOleObject> pOleObject;
ControlQueryInterface(IID_IOleObject, (void**)&pOleObject);

CComControlBase::DoesVerbActivate

iVerb 매개 변수에서 사용하는 iVerb 매개 변수가 컨트롤의 사용자 인터페이스를 활성화하거나(iVerb이 OLEIVERB_UIACTIVATE 같음) 사용자가 컨트롤을 두 번 클릭하거나(iVerb이 OLEIVERB_PRIMARY 같음) 컨트롤을 표시하거나(iVerb이 OLEIVERB_SHOW 같음) 컨트롤을 활성화할 때 수행되는 작업을 정의하는지 확인합니다(iVerb은 OLEIVERB_INPLACEACTIVATE 같음).IOleObjectImpl::DoVerb

BOOL DoesVerbActivate(LONG iVerb);

매개 변수

iVerb
에서 수행할 작업을 나타내는 값입니다 DoVerb.

Return Value

iVerb이 OLEIVERB_UIACTIVATE, OLEIVERB_PRIMARY, OLEIVERB_SHOW 또는 OLEIVERB_INPLACEACTIVATE 같으면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.

설명

이 메서드를 재정의하여 사용자 고유의 활성화 동사를 정의할 수 있습니다.

CComControlBase::DoesVerbUIActivate

컨트롤의 사용자 인터페이스가 IOleObjectImpl::DoVerb 활성화되고 TRUE를 반환하는 데 사용되는 iVerb 매개 변수가 있는지 확인합니다.

BOOL DoesVerbUIActivate(LONG iVerb);

매개 변수

iVerb
에서 수행할 작업을 나타내는 값입니다 DoVerb.

Return Value

iVerb이 OLEIVERB_UIACTIVATE, OLEIVERB_PRIMARY, OLEIVERB_SHOW 또는 OLEIVERB_INPLACEACTIVATE 같으면 TRUE를 반환합니다. 그렇지 않으면 메서드가 FALSE를 반환합니다.

CComControlBase::DoVerbProperties

컨트롤의 속성 페이지를 표시합니다.

HRESULT DoVerbProperties(LPCRECT /* prcPosRect */, HWND hwndParent);

매개 변수

prcPosRec
예약되었습니다.

hwndParent
컨트롤이 포함된 창의 핸들입니다.

Return Value

표준 HRESULT 값 중 하나입니다.

예시

// The following implementation of the WM_RBUTTONDOWN message handler
// will pop up the ActiveX Control's PropertyPages 
LRESULT CMyComposite::OnRButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, 
   LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
   DoVerbProperties(NULL, ::GetActiveWindow());
   return 0L;
}

 

MESSAGE_HANDLER(WM_RBUTTONDOWN, OnRButtonDown)

CComControlBase::FireViewChange

이 메서드를 호출하여 컨테이너에 컨트롤을 다시 그리도록 지시하거나 등록된 조언 싱크에 컨트롤의 보기가 변경되었음을 알립니다.

HRESULT FireViewChange();

Return Value

표준 HRESULT 값 중 하나입니다.

설명

컨트롤이 활성 상태이면(컨트롤 클래스 데이터 멤버 CComControlBase::m_bInPlaceActive TRUE임) 전체 컨트롤을 다시 그릴 컨테이너에 알릴 수 있습니다. 컨트롤이 비활성 상태이면 컨트롤의 등록된 조언 싱크(컨트롤 클래스 데이터 멤버 CComControlBase::m_spAdviseSink를 통해)에 컨트롤의 보기가 변경되었음을 알릴 수 있습니다.

예시

STDMETHODIMP CMyControl::put_Shape(int newVal)
{
   // store newVal in m_nShape user-defined member
   m_nShape = newVal;

   // notify container to redraw control
   FireViewChange();
   return S_OK;
}

CComControlBase::GetAmbientAppearance

컨트롤의 현재 모양 설정인 DISPID_AMBIENT_APPEARANCE 검색합니다. 플랫의 경우 0, 3D의 경우 1입니다.

HRESULT GetAmbientAppearance(short& nAppearance);

매개 변수

nAppearance
속성 DISPID_AMBIENT_APPEARANCE.

Return Value

표준 HRESULT 값 중 하나입니다.

예시

HRESULT OnDraw(ATL_DRAWINFO& di)
{
   short nAppearance;
   RECT& rc = *(RECT*)di.prcBounds;

   // draw 3D border if AmbientAppearance is not supported or is set to 1 
   HRESULT hr = GetAmbientAppearance(nAppearance);
   if (hr != S_OK || nAppearance==1)
   {
      DrawEdge(di.hdcDraw, &rc, EDGE_SUNKEN, BF_RECT);
   }
   else
   {
      Rectangle(di.hdcDraw, rc.left, rc.top, rc.right, rc.bottom);
   }

   SetTextAlign(di.hdcDraw, TA_CENTER|TA_BASELINE);
   LPCTSTR pszText = _T("ATL 8.0 : MyControl");

   // For security reasons, we recommend that you use the lstrlen function
   // with caution. Here, we can guarantee that pszText is NULL terminated,
   // and therefore it is safe to use this function.
   TextOut(di.hdcDraw, 
      (rc.left + rc.right) / 2, 
      (rc.top + rc.bottom) / 2, 
      pszText, 
      lstrlen(pszText));

   return S_OK;
}

CComControlBase::GetAmbientAutoClip

컨테이너가 컨트롤 표시 영역의 자동 클리핑을 지원하는지 여부를 나타내는 플래그인 DISPID_AMBIENT_AUTOCLIP 검색합니다.

HRESULT GetAmbientAutoClip(BOOL& bAutoClip);

매개 변수

bAutoClip
속성 DISPID_AMBIENT_AUTOCLIP.

Return Value

표준 HRESULT 값 중 하나입니다.

CComControlBase::GetAmbientBackColor

컨테이너에서 정의한 모든 컨트롤의 앰비언트 배경색인 DISPID_AMBIENT_BACKCOLOR 검색합니다.

HRESULT GetAmbientBackColor(OLE_COLOR& BackColor);

매개 변수

BackColor
속성 DISPID_AMBIENT_BACKCOLOR.

Return Value

표준 HRESULT 값 중 하나입니다.

CComControlBase::GetAmbientCharSet

컨테이너에서 정의한 모든 컨트롤에 대해 설정된 앰비언트 문자 집합인 DISPID_AMBIENT_CHARSET 검색합니다.

HRESULT GetAmbientCharSet(BSTR& bstrCharSet);

매개 변수

bstrCharSet
속성 DISPID_AMBIENT_CHARSET.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

CComControlBase::GetAmbientCodePage

컨테이너에서 정의한 모든 컨트롤의 앰비언트 코드 페이지인 DISPID_AMBIENT_CODEPAGE 검색합니다.

HRESULT GetAmbientCodePage(ULONG& ulCodePage);

매개 변수

ulCodePage
속성 DISPID_AMBIENT_CODEPAGE.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

CComControlBase::GetAmbientDisplayAsDefault

컨테이너가 이 사이트의 컨트롤을 기본 단추로 표시한 경우 TRUE인 플래그인 DISPID_AMBIENT_DISPLAYASDEFAULT 검색하므로 단추 컨트롤이 더 두꺼운 프레임으로 자신을 그려야 합니다.

HRESULT GetAmbientDisplayAsDefault(BOOL& bDisplayAsDefault);

매개 변수

bDisplayAsDefault
속성 DISPID_AMBIENT_DISPLAYASDEFAULT.

Return Value

표준 HRESULT 값 중 하나입니다.

CComControlBase::GetAmbientDisplayName

컨테이너가 컨트롤에 제공한 이름인 DISPID_AMBIENT_DISPLAYNAME 검색합니다.

HRESULT GetAmbientDisplayName(BSTR& bstrDisplayName);

매개 변수

bstrDisplayName
속성 DISPID_AMBIENT_DISPLAYNAME.

Return Value

표준 HRESULT 값 중 하나입니다.

CComControlBase::GetAmbientFont

컨테이너의 앰비언트 IFont 인터페이스에 대한 포인터를 검색합니다.

HRESULT GetAmbientFont(IFont** ppFont);

매개 변수

ppFont
컨테이너의 앰비언 트 IFont 인터페이스에 대한 포인터입니다.

Return Value

표준 HRESULT 값 중 하나입니다.

설명

속성이 NULL이면 포인터는 NULL입니다. 포인터가 NULL이 아니면 호출자가 포인터를 해제해야 합니다.

CComControlBase::GetAmbientFontDisp

컨테이너의 앰비언트 IFontDisp 디스패치 인터페이스에 대한 포인터를 검색합니다.

HRESULT GetAmbientFontDisp(IFontDisp** ppFont);

매개 변수

ppFont
컨테이너의 앰비언트 IFontDisp 디스패치 인터페이스에 대한 포인터입니다.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

속성이 NULL이면 포인터는 NULL입니다. 포인터가 NULL이 아니면 호출자가 포인터를 해제해야 합니다.

CComControlBase::GetAmbientForeColor

컨테이너에서 정의한 모든 컨트롤의 앰비언트 전경색인 DISPID_AMBIENT_FORECOLOR 검색합니다.

HRESULT GetAmbientForeColor(OLE_COLOR& ForeColor);

매개 변수

ForeColor
속성 DISPID_AMBIENT_FORECOLOR.

Return Value

표준 HRESULT 값 중 하나입니다.

CComControlBase::GetAmbientLocaleID

컨테이너에서 사용하는 언어의 식별자인 DISPID_AMBIENT_LOCALEID 검색합니다.

HRESULT GetAmbientLocaleID(LCID& lcid);

매개 변수

lcid
속성 DISPID_AMBIENT_LOCALEID.

Return Value

표준 HRESULT 값 중 하나입니다.

설명

컨트롤은 이 식별자를 사용하여 사용자 인터페이스를 다른 언어로 조정할 수 있습니다.

CComControlBase::GetAmbientMessageReflect

컨테이너가 이벤트와 같은 WM_DRAWITEM창 메시지를 수신할지 여부를 나타내는 플래그인 DISPID_AMBIENT_MESSAGEREFLECT 검색합니다.

HRESULT GetAmbientMessageReflect(BOOL& bMessageReflect);

매개 변수

bMessageReflect
속성 DISPID_AMBIENT_MESSAGEREFLECT.

Return Value

표준 HRESULT 값 중 하나입니다.

CComControlBase::GetAmbientPalette

컨테이너의 HPALETTE에 액세스하는 데 사용되는 DISPID_AMBIENT_PALETTE 검색합니다.

HRESULT GetAmbientPalette(HPALETTE& hPalette);

매개 변수

hPalette
속성 DISPID_AMBIENT_PALETTE.

Return Value

표준 HRESULT 값 중 하나입니다.

CComControlBase::GetAmbientProperty

dispid에서 지정한 컨테이너 속성을 검색합니다.

HRESULT GetAmbientProperty(DISPID dispid, VARIANT& var);

매개 변수

dispid
검색할 컨테이너 속성의 식별자입니다.

var
속성을 받을 변수입니다.

Return Value

표준 HRESULT 값 중 하나입니다.

설명

ATL은 특정 속성(예 : CComControlBase::GetAmbientBackColor)을 검색하는 도우미 함수 집합을 제공했습니다. 사용할 수 있는 적절한 메서드가 없으면 .를 사용합니다 GetAmbientProperty.

CComControlBase::GetAmbientRightToLeft

컨테이너에서 콘텐츠가 표시되는 방향인 DISPID_AMBIENT_RIGHTTOLEFT 검색합니다.

HRESULT GetAmbientRightToLeft(BOOL& bRightToLeft);

매개 변수

bRightToLeft
속성 DISPID_AMBIENT_RIGHTTOLEFT. 콘텐츠가 오른쪽에서 왼쪽으로 표시되면 TRUE로, 왼쪽에서 오른쪽으로 표시되면 FALSE로 설정합니다.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

CComControlBase::GetAmbientScaleUnits

레이블 지정 표시를 위해 컨테이너의 앰비언트 단위(예: 인치 또는 센티미터)인 DISPID_AMBIENT_SCALEUNITS 검색합니다.

HRESULT GetAmbientScaleUnits(BSTR& bstrScaleUnits);

매개 변수

bstrScaleUnits
속성 DISPID_AMBIENT_SCALEUNITS.

Return Value

표준 HRESULT 값 중 하나입니다.

CComControlBase::GetAmbientShowGrabHandles

컨테이너가 활성 상태일 때 컨트롤이 자체적으로 잡기 핸들을 표시할 수 있는지 여부를 나타내는 플래그인 DISPID_AMBIENT_SHOWGRABHANDLES 검색합니다.

HRESULT GetAmbientShowGrabHandles(BOOL& bShowGrabHandles);

매개 변수

bShowGrabHandles
속성 DISPID_AMBIENT_SHOWGRABHANDLES.

Return Value

표준 HRESULT 값 중 하나입니다.

CComControlBase::GetAmbientShowHatching

컨트롤의 사용자 인터페이스가 활성 상태일 때 컨테이너에서 빗살 무늬 패턴으로 컨트롤을 표시할 수 있는지 여부를 나타내는 플래그인 DISPID_AMBIENT_SHOWHATCHING 검색합니다.

HRESULT GetAmbientShowHatching(BOOL& bShowHatching);

매개 변수

bShowHatching
속성 DISPID_AMBIENT_SHOWHATCHING.

Return Value

표준 HRESULT 값 중 하나입니다.

CComControlBase::GetAmbientSupportsMnemonics

컨테이너가 키보드 니모닉을 지원하는지 여부를 나타내는 플래그인 DISPID_AMBIENT_SUPPORTSMNEMONICS 검색합니다.

HRESULT GetAmbientSupportsMnemonics(BOOL& bSupportsMnemonics);

매개 변수

bSupportsMnemonics
속성 DISPID_AMBIENT_SUPPORTSMNEMONICS.

Return Value

표준 HRESULT 값 중 하나입니다.

CComControlBase::GetAmbientTextAlign

컨테이너에서 선호하는 텍스트 맞춤인 DISPID_AMBIENT_TEXTALIGN 검색합니다. 일반 맞춤(숫자 오른쪽, 왼쪽 텍스트)의 경우 0, 왼쪽 맞춤의 경우 1, 가운데 맞춤의 경우 2, 오른쪽 맞춤의 경우 3을 검색합니다.

HRESULT GetAmbientTextAlign(short& nTextAlign);

매개 변수

nTextAlign
속성 DISPID_AMBIENT_TEXTALIGN.

Return Value

표준 HRESULT 값 중 하나입니다.

CComControlBase::GetAmbientTopToBottom

컨테이너에서 콘텐츠가 표시되는 방향인 DISPID_AMBIENT_TOPTOBOTTOM 검색합니다.

HRESULT GetAmbientTopToBottom(BOOL& bTopToBottom);

매개 변수

bTopToBottom
속성 DISPID_AMBIENT_TOPTOBOTTOM. 텍스트가 위쪽에서 아래쪽으로 표시되면 TRUE로, 아래쪽에서 위쪽으로 표시되면 FALSE로 설정합니다.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

CComControlBase::GetAmbientUIDead

컨테이너가 컨트롤이 사용자 인터페이스 작업에 응답하도록 할지 여부를 나타내는 플래그인 DISPID_AMBIENT_UIDEAD 검색합니다.

HRESULT GetAmbientUIDead(BOOL& bUIDead);

매개 변수

bUIDead
속성 DISPID_AMBIENT_UIDEAD.

Return Value

표준 HRESULT 값 중 하나입니다.

설명

TRUE이면 컨트롤이 응답하지 않아야 합니다. 이 플래그는 DISPID_AMBIENT_USERMODE 플래그에 관계없이 적용됩니다. CComControlBase::GetAmbientUserMode를 참조하세요.

CComControlBase::GetAmbientUserMode

컨테이너가 실행 모드(TRUE) 또는 디자인 모드(FALSE)인지 여부를 나타내는 플래그인 DISPID_AMBIENT_USERMODE 검색합니다.

HRESULT GetAmbientUserMode(BOOL& bUserMode);

매개 변수

bUserMode
속성 DISPID_AMBIENT_USERMODE.

Return Value

표준 HRESULT 값 중 하나입니다.

CComControlBase::GetDirty

데이터 멤버 m_bRequiresSave의 값을 반환합니다.

BOOL GetDirty();

Return Value

데이터 멤버 m_bRequiresSave 값을 반환합니다.

설명

이 값은 CComControlBase::SetDirty를 사용하여 설정됩니다.

CComControlBase::GetZoomInfo

현재 위치 편집을 위해 활성화된 컨트롤에 대한 확대/축소 비율의 숫자 및 분모의 x 및 y 값을 검색합니다.

void GetZoomInfo(ATL_DRAWINFO& di);

매개 변수

di
확대/축소 비율의 분자 및 분모를 보유할 구조체입니다. 자세한 내용은 ATL_DRAWINFO 참조하세요.

설명

확대/축소 비율은 컨트롤의 자연 크기에서 현재 범위까지의 비율입니다.

CComControlBase::InPlaceActivate

컨트롤이 비활성 상태에서 iVerb의 동사가 나타내는 상태로 전환되도록 합니다.

HRESULT InPlaceActivate(LONG iVerb, const RECT* prcPosRect = NULL);

매개 변수

iVerb
IOleObjectImpl::D oVerb에서 수행할 작업을 나타내는 값입니다.

prcPosRect
현재 위치 컨트롤의 위치에 대한 포인터입니다.

Return Value

표준 HRESULT 값 중 하나입니다.

설명

활성화하기 전에 이 메서드는 컨트롤에 클라이언트 사이트가 검사 표시할 컨트롤의 양을 검사 부모 창에서 컨트롤의 위치를 가져옵니다. 컨트롤이 활성화된 후 이 메서드는 컨트롤의 사용자 인터페이스를 활성화하고 컨트롤을 표시하도록 컨테이너에 지시합니다.

또한 이 메서드는 IOleInPlaceSite컨트롤에 대한 또는 IOleInPlaceSiteWindowlessIOleInPlaceSiteEx인터페이스 포인터를 검색하여 컨트롤 클래스의 데이터 멤버 CComControlBase::m_spInPlaceSite 저장합니다. 컨트롤 클래스 데이터 멤버 CComControlBase::m_bInPlaceSiteEx, CComControlBase::m_bWndLess, CComControlBase::m_bWasOnceWindowlessCComControlBase::m_bNegotiatedWnd 적절하게 true로 설정됩니다.

CComControlBase::InternalGetSite

식별된 인터페이스에 대한 포인터에 대한 컨트롤 사이트를 쿼리하려면 이 메서드를 호출합니다.

HRESULT InternalGetSite(REFIID riid, void** ppUnkSite);

매개 변수

riid
ppUnkSite에서 반환되어야 하는 인터페이스 포인터의 IID입니다.

ppUnkSite
riid에서 요청된 인터페이스 포인터를 수신하는 포인터 변수의 주소입니다.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

사이트에서 riid에서 요청된 인터페이스를 지원하는 경우 포인터는 ppUnkSite통해 반환됩니다. 그렇지 않으면 ppUnkSite 가 NULL로 설정됩니다.

CComControlBase::m_bAutoSize

컨트롤이 다른 크기일 수 없음을 나타내는 플래그입니다.

unsigned m_bAutoSize:1;

설명

이 플래그는 검사 IOleObjectImpl::SetExtent TRUE이면 함수가 E_FAIL 반환합니다.

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

ATL 컨트롤 마법사의 스톡 속성 탭에서 자동 크기 옵션을 추가 하는 경우 마법사는이 데이터 멤버를 컨트롤 클래스에 자동으로 만들고, 속성에 대 한 put 및 get 메서드를 만들며, IPropertyNotifySink을 지원 합니다. 속성이 변경 될 때 컨테이너에 자동으로 알리려면입니다.

CComControlBase::m_bDrawFromNatural

컨트롤 크기를 m_sizeNaturalm_sizeExtent설정해야 함을 CComControlBase::GetZoomInfoIDataObjectImpl::GetData 나타내는 플래그입니다.

unsigned m_bDrawFromNatural:1;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

CComControlBase::m_bDrawGetDataInHimetric

그리는 경우 픽셀이 아닌 HIMETRIC 단위를 사용해야 함을 IDataObjectImpl::GetData 나타내는 플래그입니다.

unsigned m_bDrawGetDataInHimetric:1;

설명

각 논리적 HIMETRIC 단위는 0.01mm입니다.

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

CComControlBase::m_bInPlaceActive

컨트롤이 현재 위치 활성 상태임을 나타내는 플래그입니다.

unsigned m_bInPlaceActive:1;

설명

즉, 컨트롤이 표시되고 창(있는 경우)이 표시되지만 메뉴와 도구 모음이 활성화되지 않을 수 있습니다. 플래그는 m_bUIActive 메뉴와 같은 컨트롤의 사용자 인터페이스도 활성 상태임을 나타냅니다.

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

CComControlBase::m_bInPlaceSiteEx

컨테이너가 창 없는 컨트롤 및 깜박임 없는 컨트롤과 같은 인터페이스 및 OCX96 컨트롤 기능을 지원 IOleInPlaceSiteEx 함을 나타내는 플래그입니다.

unsigned m_bInPlaceSiteEx:1;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

데이터 멤버 m_spInPlaceSitem_bWndLessm_bInPlaceSiteEx 플래그의 값에 따라 IOleInPlaceSite, IOleInPlaceSiteEx 또는 IOleInPlaceSiteWindowless 인터페이스를 가리킵니다. 포인터가 유효하려면 데이터 멤버 m_bNegotiatedWndm_spInPlaceSite TRUE여야 합니다.

FALSE이고 TRUE이면 m_bWndLess 인터페이스 포인터입니다IOleInPlaceSiteEx. m_spInPlaceSitem_bInPlaceSiteEx 이러한 세 데이터 멤버 간의 관계를 보여 주는 테이블은 m_spInPlaceSite 참조하세요.

CComControlBase::m_bNegotiatedWnd

컨트롤이 OCX96 컨트롤 기능(예: 깜박임 없는 컨트롤 및 창 없는 컨트롤)에 대한 지원에 대해 컨테이너와 협상했는지 여부와 컨트롤이 창이 없는지 여부를 나타내는 플래그입니다.

unsigned m_bNegotiatedWnd:1;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

포인터가 m_bNegotiatedWnd 유효하려면 플래그가 m_spInPlaceSite TRUE여야 합니다.

CComControlBase::m_bRecomposeOnResize

컨테이너가 컨트롤의 표시 크기를 변경할 때 컨트롤이 프레젠테이션을 다시 컴파일하려고 함을 나타내는 플래그입니다.

unsigned m_bRecomposeOnResize:1;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

이 플래그는 IOleObjectImpl::SetExtent에 의해 검사 TRUE이면 SetExtent 컨테이너에 보기 변경 내용을 알 수 있습니다. 이 플래그가 설정되면 OLEMISC 열거형의 OLEMISC_RECOMPOSEONRESIZE 비트도 설정해야 합니다.

CComControlBase::m_bRequiresSave

컨트롤이 마지막으로 저장된 이후 변경되었음을 나타내는 플래그입니다.

unsigned m_bRequiresSave:1;

설명

m_bRequiresSave 은 CComControlBase::SetDirty사용하여 설정하고 CComControlBase::GetDirty를 사용하여 검색할 수 있습니다.

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

CComControlBase::m_bResizeNatural

컨테이너가 컨트롤의 표시 크기를 변경할 때 컨트롤의 자연 익스텐트(크기가 조정되지 않은 실제 크기)의 크기를 조정하려고 함을 나타내는 플래그입니다.

unsigned m_bResizeNatural:1;

설명

이 플래그는 검사 IOleObjectImpl::SetExtent TRUE이면 전달된 SetExtent 크기가 할당됩니다m_sizeNatural.

전달되는 SetExtent 크기는 값m_bResizeNaturalm_sizeExtent관계없이 항상 할당됩니다.

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

CComControlBase::m_bUIActive

메뉴 및 도구 모음과 같은 컨트롤의 사용자 인터페이스가 활성 상태임을 나타내는 플래그입니다.

unsigned m_bUIActive:1;

설명

플래그는 m_bInPlaceActive 컨트롤이 활성 상태이지만 해당 사용자 인터페이스가 활성 상태임을 나타내지 않습니다.

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

CComControlBase::m_bUsingWindowRgn

컨트롤이 컨테이너 제공 창 영역을 사용하고 있음을 나타내는 플래그입니다.

unsigned m_bUsingWindowRgn:1;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

CComControlBase::m_bWasOnceWindowless

컨트롤이 창이 없음을 나타내는 플래그이지만, 이제 창이 없을 수도 있으며 그렇지 않을 수도 있습니다.

unsigned m_bWasOnceWindowless:1;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

CComControlBase::m_bWindowOnly

컨테이너가 창 없는 컨트롤을 지원하는 경우에도 컨트롤을 창에 표시해야 함을 나타내는 플래그입니다.

unsigned m_bWindowOnly:1;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

CComControlBase::m_bWndLess

컨트롤이 창이 없음을 나타내는 플래그입니다.

unsigned m_bWndLess:1;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

데이터 멤버 m_spInPlaceSite 는 및 CComControlBase::m_bInPlaceSiteEx 플래그의 m_bWndLess값에 따라 IOleInPlaceSite, IOleInPlaceSiteEx 또는 IOleInPlaceSiteWindowless 인터페이스를 가리킵니다. (데이터 멤버 CComControlBase::m_bNegotiatedWnd CComControlBase::m_spInPlaceSite 포인터가 유효하려면 TRUE여야 합니다.)

TRUE이면 m_bWndLess 인터페이스 포인터입니다IOleInPlaceSiteWindowless. m_spInPlaceSite 이러한 데이터 멤버 간의 전체 관계를 보여 주는 테이블은 CComControlBase::m_spInPlaceSite 참조하세요.

CComControlBase::m_hWndCD

컨트롤과 연결된 창 핸들에 대한 참조를 포함합니다.

HWND& m_hWndCD;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

CComControlBase::m_nFreezeEvents

이벤트의 중간 해동(이벤트 수락)없이 컨테이너가 이벤트를 동결(이벤트 수락 거부)한 횟수입니다.

short m_nFreezeEvents;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

CComControlBase::m_rcPos

컨테이너의 좌표로 표현된 컨트롤의 픽셀 단위 위치입니다.

RECT m_rcPos;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

CComControlBase::m_sizeExtent

특정 디스플레이에 대한 HIMETRIC 단위의 컨트롤 범위(각 단위는 0.01mm)입니다.

SIZE m_sizeExtent;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

이 크기는 디스플레이에 따라 조정됩니다. 컨트롤의 실제 크기는 데이터 멤버에 m_sizeNatural 지정되며 고정됩니다.

전역 함수 AtlHiMetricToPixel을 사용하여 크기를 픽셀로 변환할 수 있습니다.

CComControlBase::m_sizeNatural

HIMETRIC 단위로 컨트롤의 실제 크기(각 단위는 0.01mm)입니다.

SIZE m_sizeNatural;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

이 크기는 고정된 반면 크기 m_sizeExtent 는 디스플레이에 따라 크기가 조정됩니다.

전역 함수 AtlHiMetricToPixel을 사용하여 크기를 픽셀로 변환할 수 있습니다.

CComControlBase::m_spAdviseSink

컨테이너의 권고 연결(컨테이너의 IAdviseSink)에 대한 직접 포인터입니다.

CComPtr<IAdviseSink>
    m_spAdviseSink;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

CComControlBase::m_spAmbientDispatch

CComDispatchDriver 포인터를 통해 개체의 속성을 검색하고 설정할 수 있는 개체입니다IDispatch.

CComDispatchDriver m_spAmbientDispatch;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

CComControlBase::m_spClientSite

컨테이너 내에서 컨트롤의 클라이언트 사이트에 대한 포인터입니다.

CComPtr<IOleClientSite>
    m_spClientSite;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

CComControlBase::m_spDataAdviseHolder

데이터 개체 간에 권고 연결을 유지하고 싱크를 조언하는 표준 수단을 제공합니다.

CComPtr<IDataAdviseHolder>
    m_spDataAdviseHolder;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

데이터 개체는 데이터를 전송할 수 있고 IDataObject구현하는 컨트롤로, 메서드는 데이터의 형식 및 전송 매체를 지정합니다.

인터페이스 m_spDataAdviseHolder 는 IDataObject::D AdviseIDataObject::D나비즈 메서드를 구현하여 컨테이너에 대한 권고 연결을 설정하고 삭제합니다. 컨트롤의 컨테이너는 IAdviseSink 인터페이스를 지원하여 조언 싱크를 구현해야 합니다.

CComControlBase::m_spInPlaceSite

컨테이너의 IOleInPlaceSite, IOleInPlaceSiteEx 또는 IOleInPlaceSiteWindowless 인터페이스 포인터에 대한 포인터입니다.

CComPtr<IOleInPlaceSiteWindowless>
    m_spInPlaceSite;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

포인터는 m_spInPlaceSite m_bNegotiatedWnd 플래그가 TRUE인 경우에만 유효합니다.

다음 표에서는 포인터 형식이 m_spInPlaceSite m_bWndLess 및 m_bInPlaceSiteEx 데이터 멤버 플래그에 따라 달라지는 방법을 보여 줍니다.

m_spInPlaceSite 형식 m_bWndLess 값 m_bInPlaceSiteEx 값
IOleInPlaceSiteWindowless TRUE True 또는 False
IOleInPlaceSiteEx FALSE TRUE
IOleInPlaceSite FALSE FALSE

CComControlBase::m_spOleAdviseHolder

권고 연결을 유지하는 방법의 표준 구현을 제공합니다.

CComPtr<IOleAdviseHolder>
    m_spOleAdviseHolder;

설명

참고 항목

컨트롤 클래스 내에서 이 데이터 멤버를 사용하려면 컨트롤 클래스에서 데이터 멤버로 선언해야 합니다. 컨트롤 클래스는 기본 클래스의 공용 구조체 내에서 선언되므로 이 데이터 멤버를 기본 클래스에서 상속하지 않습니다.

인터페이스 m_spOleAdviseHolder 는 IOleObject::AdviseIOleObject::Unadvise 메서드를 구현하여 컨테이너에 대한 권고 연결을 설정하고 삭제합니다. 컨트롤의 컨테이너는 IAdviseSink 인터페이스를 지원하여 조언 싱크를 구현해야 합니다.

CComControlBase::OnDraw

컨트롤을 그리려면 이 메서드를 재정의합니다.

virtual HRESULT OnDraw(ATL_DRAWINFO& di);

매개 변수

di
그리기 측면, 컨트롤 경계 및 그리기 최적화 여부와 같은 그리기 정보를 포함하는 ATL_DRAWINFO 구조체에 대한 참조입니다.

Return Value

표준 HRESULT 값입니다.

설명

기본값 OnDraw 은 CComControlBase::OnDrawAdvanced설정된 플래그에 따라 디바이스 컨텍스트를 삭제하거나 복원하거나 아무 작업도 수행하지 않습니다.

OnDraw ATL 컨트롤 마법사를 사용하여 컨트롤을 만들 때 메서드가 컨트롤 클래스에 자동으로 추가됩니다. 마법사의 기본값 OnDraw 은 "ATL 8.0" 레이블이 있는 사각형을 그립니다.

예시

CComControlBase::GetAmbientAppearance에 대한 예제를 참조하세요.

CComControlBase::OnDrawAdvanced

기본값 OnDrawAdvanced 은 그리기를 위해 정규화된 디바이스 컨텍스트를 준비한 다음 컨트롤 클래스의 OnDraw 메서드를 호출합니다.

virtual HRESULT OnDrawAdvanced(ATL_DRAWINFO& di);

매개 변수

di
그리기 측면, 컨트롤 경계 및 그리기 최적화 여부와 같은 그리기 정보를 포함하는 ATL_DRAWINFO 구조체에 대한 참조입니다.

Return Value

표준 HRESULT 값입니다.

설명

컨테이너에서 전달한 디바이스 컨텍스트를 정규화하지 않고 수락하려면 이 메서드를 재정의합니다.

자세한 내용은 CComControlBase::OnDraw를 참조하세요.

CComControlBase::OnKillFocus

컨트롤이 현재 위치 활성 상태이고 유효한 컨트롤 사이트가 있는지 확인한 다음 컨트롤에 포커스가 손실되었음을 컨테이너에 알릴 수 있습니다.

LRESULT OnKillFocus(UINT /* nMsg */,
    WPARAM /* wParam */,
    LPARAM /* lParam */,
    BOOL& bHandled);

매개 변수

nMsg
예약되었습니다.

wParam
예약되어 있습니다.

lParam
예약되었습니다.

bHandled
창 메시지가 성공적으로 처리되었는지 여부를 나타내는 플래그입니다. 기본값은 FALSE입니다.

Return Value

항상 1을 반환합니다.

CComControlBase::OnMouseActivate

UI가 사용자 모드인지 확인한 다음 컨트롤을 활성화합니다.

LRESULT OnMouseActivate(UINT /* nMsg */,
    WPARAM /* wParam */,
    LPARAM /* lParam */,
    BOOL& bHandled);

매개 변수

nMsg
예약되었습니다.

wParam
예약되어 있습니다.

lParam
예약되었습니다.

bHandled
창 메시지가 성공적으로 처리되었는지 여부를 나타내는 플래그입니다. 기본값은 FALSE입니다.

Return Value

항상 1을 반환합니다.

CComControlBase::OnPaint

그리기 위해 컨테이너를 준비하고 컨트롤의 클라이언트 영역을 가져오고 컨트롤 클래스의 OnDrawAdvanced 메서드를 호출합니다.

LRESULT OnPaint(UINT /* nMsg */,
    WPARAM wParam,
    LPARAM /* lParam */,
    BOOL& /* lResult */);

매개 변수

nMsg
예약되었습니다.

wParam
기존 HDC입니다.

lParam
예약되었습니다.

lResult
예약되었습니다.

Return Value

항상 0을 반환합니다.

설명

wParam이 NULL OnPaint 이 아닌 경우 유효한 HDC가 포함되어 있다고 가정하고 CComControlBase::m_hWndCD 대신 사용합니다.

CComControlBase::OnSetFocus

컨트롤이 현재 위치 활성 상태이고 유효한 컨트롤 사이트가 있는지 확인한 다음 컨트롤이 포커스를 확보했음을 컨테이너에 알릴 수 있습니다.

LRESULT OnSetFocus(UINT /* nMsg */,
    WPARAM /* wParam */,
    LPARAM /* lParam */,
    BOOL& bHandled);

매개 변수

nMsg
예약되었습니다.

wParam
예약되어 있습니다.

lParam
예약되었습니다.

bHandled
창 메시지가 성공적으로 처리되었는지 여부를 나타내는 플래그입니다. 기본값은 FALSE입니다.

Return Value

항상 1을 반환합니다.

설명

컨트롤이 포커스를 받았다는 알림을 컨테이너에 보냅니다.

CComControlBase::PreTranslateAccelerator

사용자 고유의 키보드 가속기 처리기를 제공하도록 이 메서드를 재정의합니다.

BOOL PreTranslateAccelerator(LPMSG /* pMsg */,
    HRESULT& /* hRet */);

매개 변수

pMsg
예약되었습니다.

hRet
예약되었습니다.

Return Value

기본적으로 FALSE를 반환합니다.

CComControlBase::SendOnClose

자문 소유자에게 등록된 모든 권고 싱크에 제어가 닫혔다는 것을 알 수 있습니다.

HRESULT SendOnClose();

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

컨트롤이 권고 싱크를 닫았다는 알림을 보냅니다.

CComControlBase::SendOnDataChange

자문 소유자에게 등록된 모든 권고 싱크에 제어 데이터가 변경되었음을 알 수 있습니다.

HRESULT SendOnDataChange(DWORD advf = 0);

매개 변수

advf
IAdviseSink::OnDataChange를 호출하는 방법을 지정하는 플래그를 조언합니다. 값은 ADVF 열거형에서 가져옵니다.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

CComControlBase::SendOnRename

컨트롤에 새로운 모니커가 있음을 자문 소유자에게 등록한 모든 자문 싱크에 알깁니다.

HRESULT SendOnRename(IMoniker* pmk);

매개 변수

pmk
컨트롤의 새 모니커에 대한 포인터입니다.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

컨트롤의 모니커가 변경되었다는 알림을 보냅니다.

CComControlBase::SendOnSave

자문 소유자에게 등록된 모든 권고 싱크에 컨트롤이 저장되었음을 알 수 있습니다.

HRESULT SendOnSave();

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

컨트롤이 해당 데이터를 방금 저장했다는 알림을 보냅니다.

CComControlBase::SendOnViewChange

등록된 모든 권고 싱크에 컨트롤의 보기가 변경되었음을 알 수 있습니다.

HRESULT SendOnViewChange(DWORD dwAspect, LONG lindex = -1);

매개 변수

dwAspect
컨트롤의 측면 또는 뷰입니다.

lindex
변경 된 보기의 일부입니다. -1만 유효합니다.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

SendOnViewChange는 IAdviseSink::OnViewChange를 호출합니다. 현재 지원되는 린덱스의 유일한 값은 -1이며, 이는 전체 보기가 관심 있음을 나타냅니다.

CComControlBase::SetControlFocus

키보드 포커스를 컨트롤에서 설정하거나 제거합니다.

BOOL SetControlFocus(BOOL bGrab);

매개 변수

bGrab
TRUE이면 키보드 포커스를 호출 컨트롤로 설정합니다. FALSE이면 포커스가 있는 경우 호출 컨트롤에서 키보드 포커스를 제거합니다.

Return Value

컨트롤이 포커스를 성공적으로 받으면 TRUE를 반환합니다. 그렇지 않으면 FALSE입니다.

설명

창이 있는 컨트롤의 경우 Windows API 함수 SetFocus 가 호출됩니다. 창 없는 컨트롤 의 경우 IOleInPlaceSiteWindowless::SetFocus 가 호출됩니다. 이 호출을 통해 창 없는 컨트롤은 키보드 포커스를 가져오고 창 메시지에 응답할 수 있습니다.

CComControlBase::SetDirty

데이터 멤버 m_bRequiresSave 를 bDirty의 값으로 설정합니다.

void SetDirty(BOOL bDirty);

매개 변수

bDirty
데이터 멤버 CComControlBase::m_bRequiresSave 값입니다.

설명

SetDirty(TRUE) 컨트롤이 마지막으로 저장된 이후 변경되었음을 플래그로 지정하려면 호출해야 합니다. 값 m_bRequiresSave 은 CComControlBase::GetDirty를 사용하여 검색됩니다.

참고 항목

CComControl 클래스
클래스 개요