MFC ActiveX 컨트롤: 스톡 속성 추가
스톡 속성 사용자 지정 속성에서 다른 클래스에 의해 이미 구현 된다는 점에서 COleControl.COleControl공용 속성에 대 한 컨트롤에서 지 원하는 미리 정의 된 멤버 함수를 포함 합니다.일부 공통 속성이 컨트롤의 캡션과 전경색 및 배경색을 포함합니다.다른 스톡 속성에 대 한 자세한 내용은 지 원하는 스톡 속성 속성 추가 마법사에서 을이 참고 하십시오.디스패치 맵 엔트리 스톡 속성에 대해 항상에서 접두사 DISP_STOCKPROP.
이 문서에서는 속성 추가 마법사를 사용 하 여 ActiveX 컨트롤에 스톡 속성 (이 경우, Caption)를 추가 하는 방법에 설명 합니다 및 결과 코드의 수정 사항에 설명 합니다.다음 내용을 다룹니다.
속성 추가 마법사를 사용 하 여 스톡 속성을 추가 하려면
속성 추가 마법사에서 변경 스톡 속성
속성 추가 마법사가 지 원하는 스톡 속성
스톡 속성 및 알림
색 속성
[!참고]
Visual Basic 사용자 지정 컨트롤에는 일반적으로 위쪽, 왼쪽, 너비, 높이, 맞춤, 태그, TabIndex, Tabstop을 이름과 부모와 같은 속성이 있습니다.그러나 ActiveX 컨트롤 컨테이너, 이러한 컨트롤 속성을 구현 하는 및 따라서 ActiveX 컨트롤이 속성 지원 해야 합니다.
사용 하는 스톡 속성을 추가 하려면 속성 추가 마법사
스톡 속성 추가 필요 하기 때문에 사용자 지정 속성을 추가 하는 보다 적은 코드로 속성을 자동으로 처리 됩니다에 대 한 지원이 COleControl.다음 절차는 ActiveX 제어 프레임 워크에 스톡 Caption 속성을 추가 하는 방법을 보여 줍니다 및 다른 스톡 속성을 추가 하려면 사용할 수 있습니다.캡션 선택한 스톡 속성 이름을 대체 합니다.
속성 추가 마법사를 사용 하 여 스톡 Caption 속성을 추가 하려면
컨트롤의 프로젝트를 로드 합니다.
클래스 뷰에서 컨트롤의 라이브러리 노드를 확장 합니다.
(두 번째 라이브러리 노드 노드) 컨트롤 인터페이스 노드를 마우스 오른쪽 단추로 바로 가기 메뉴를 엽니다.
바로 가기 메뉴에서 클릭 추가 누른 다음 속성 추가.
이 열은 속성 추가 마법사.
에 속성 이름 상자에서 누릅니다 캡션.
마침을 클릭합니다.
속성 추가 마법사에서 변경에 대 한 스톡 속성
때문에 COleControl 어떤 식으로든; 클래스 선언은 속성 추가 마법사에서 지 원하는 스톡 속성을 변경 하지 않는 이 속성은 디스패치 맵에 추가합니다.속성 추가 마법사 구현에 있는 해당 컨트롤의 디스패치 맵에 다음 줄을 추가 (.Cpp).
DISP_STOCKPROP_CAPTION()
컨트롤의 인터페이스 설명에는 다음 줄이 추가 됩니다 (.IDL) 파일:
[id(DISPID_CAPTION), helpstring("property Caption")] BSTR Caption;
이 줄은 Caption 속성에 특정 ID를 할당합니다.속성 바인딩 가능 하 고 권한 값을 수정 하기 전에 데이터베이스 로부터 요청 합니다 유의 하십시오.
이렇게 Caption 속성을 사용할 컨트롤 사용자에 게 있습니다.스톡 속성의 값을 사용 하려면 멤버 변수나 멤버 함수 액세스는 COleControl 기본 클래스입니다.이러한 멤버 변수와 멤버 함수에 대 한 자세한 내용은 다음 단원인 속성 추가 마법사에서 스톡 속성은 지원을 참조 하십시오.
주식에서 지 원하는 속성은 속성 추가 마법사
COleControl 클래스 9 스톡 속성을 제공 합니다.속성 추가 마법사를 사용 하 여 원하는 등록 정보를 추가할 수 있습니다.
Property |
디스패치 맵 엔트리 |
값에 액세스 하는 방법 |
---|---|---|
모양 |
DISP_STOCKPROP_APPEARANCE) |
값으로 액세스할 수 있는 m_sAppearance. |
BackColor |
DISP_STOCKPROP_BACKCOLOR) |
값을 호출 하 여 액세스할 수 있는 GetBackColor. |
BorderStyle |
DISP_STOCKPROP_BORDERSTYLE) |
값으로 액세스할 수 있는 m_sBorderStyle. |
Caption |
DISP_STOCKPROP_CAPTION) |
값을 호출 하 여 액세스할 수 있는 InternalGetText. |
Enabled |
DISP_STOCKPROP_ENABLED) |
값으로 액세스할 수 있는 m_bEnabled. |
글꼴 |
DISP_STOCKPROP_FONT) |
문서를 참고 하십시오 ActiveX 컨트롤 MFC: 글꼴을 사용 하 여 사용에 대 한. |
ForeColor |
DISP_STOCKPROP_FORECOLOR) |
값을 호출 하 여 액세스할 수 있는 GetForeColor. |
hWnd |
DISP_STOCKPROP_HWND) |
값으로 액세스할 수 있는 m_hWnd. |
Text |
DISP_STOCKPROP_TEXT) |
값을 호출 하 여 액세스할 수 있는 InternalGetText.이 속성은 동일 캡션를 제외 하 고는 속성 이름에 대 한. |
ReadyState |
DISP_STOCKPROP_READYSTATE() |
M_lreadystate로 액세스할 수 있는 값 또는GetReadyState |
스톡 속성 및 알림
대부분의 스톡 속성 알림 함수 재정의 될 수 있습니다.예를 들어, 때마다는 BackColor 속성이 변경 되 면의 OnBackColorChanged 함수 (컨트롤 클래스의 멤버 함수)를 호출 합니다.기본 구현은 (에 COleControl) 호출이 InvalidateControl.응답이 상황에서 추가 작업을 수행 하려는 경우이 함수를 재정의 합니다.
색 속성
주식 수 ForeColor 및 BackColor 속성 또는 컨트롤을 그리는 경우 사용자 고유의 사용자 지정 색 속성입니다.Color 속성을 사용 하려면 호출 하는 COleControl::TranslateColor 멤버 함수입니다.이 함수의 매개 변수는 color 속성 값에 대해 선택적인 색상표 핸들입니다.반환 값이 있는 COLORREF 같은 GDI에 전달할 수 있는 값 함수 SetTextColor 및 CreateSolidBrush.
주식에 대 한 색상 값 ForeColor 및 BackColor 호출 하 여 속성 액세스를 GetForeColor 또는 GetBackColor 각각 작동 합니다.
다음 예제는 컨트롤을 그리는 경우 이러한 두 가지 색상 속성을 사용 하는 방법을 보여 줍니다.임시 초기화 COLORREF 변수 a CBrush 개체를 호출 하는 TranslateColor: 하나를 사용 하는 ForeColor 속성 및 기타 사용의 BackColor 속성.임시 CBrush 를 사용 하 여 텍스트 색을 설정 하 고 개체 컨트롤의 사각형을 그리는 데 사용 되 고 있는 ForeColor 속성입니다.
CBrush bkBrush(TranslateColor(GetBackColor()));
COLORREF clrFore = TranslateColor(GetForeColor());
pdc->FillRect(rcBounds, &bkBrush);
pdc->SetTextColor(clrFore);
pdc->DrawText(InternalGetText(), -1, rcBounds, DT_SINGLELINE | DT_CENTER | DT_VCENTER);