다음을 통해 공유


속성 페이지(MFC)

속성 페이지에는 DDX(대화 상자 데이터 교환)를 기반으로 하는 데이터 매핑 메커니즘을 지원하여 보고 편집할 수 있는 사용자 지정 가능한 그래픽 인터페이스에 특정 OLE 컨트롤 속성의 현재 값이 표시됩니다.

이 데이터 매핑 메커니즘은 속성 페이지 컨트롤을 OLE 컨트롤의 개별 속성에 매핑합니다. 컨트롤 속성의 값은 속성 페이지 컨트롤의 상태 또는 내용을 반영합니다. 속성 페이지 컨트롤과 속성 간의 매핑은 속성 페이지의 DoDataExchange 멤버 함수에서 DDP_ 함수 호출에 의해 지정됩니다. 다음은 컨트롤의 속성 페이지를 사용하여 입력한 데이터를 교환하는 DDP_ 함수 목록입니다.

속성 페이지 데이터 전송

속성 설명
DDP_CBIndex 콤보 상자에서 선택한 문자열의 인덱스와 컨트롤의 속성을 연결합니다.
DDP_CBString 콤보 상자에서 선택한 문자열을 컨트롤의 속성과 연결합니다. 선택한 문자열은 속성 값과 동일한 문자로 시작할 수 있지만 완전히 일치시킬 필요는 없습니다.
DDP_CBStringExact 콤보 상자에서 선택한 문자열을 컨트롤의 속성과 연결합니다. 선택한 문자열과 속성의 문자열 값이 정확히 일치해야 합니다.
DDP_Check 컨트롤의 속성 페이지에 있는 확인란을 컨트롤의 속성과 연결합니다.
DDP_LBIndex 목록 상자에서 선택한 문자열의 인덱스와 컨트롤의 속성을 연결합니다.
DDP_LBString 목록 상자에서 선택한 문자열을 컨트롤의 속성과 연결합니다. 선택한 문자열은 속성 값과 동일한 문자로 시작할 수 있지만 완전히 일치하지 않아도 됩니다.
DDP_LBStringExact 목록 상자에서 선택한 문자열을 컨트롤의 속성과 연결합니다. 선택한 문자열과 속성의 문자열 값이 정확히 일치해야 합니다.
DDP_PostProcessing 컨트롤에서 속성 값의 전송을 완료합니다.
DDP_Radio 컨트롤의 속성 페이지에서 라디오 단추 그룹을 컨트롤의 속성과 연결합니다.
DDP_Text 컨트롤의 속성 페이지에 있는 컨트롤을 컨트롤의 속성과 연결합니다. 이 함수는 , doubleshortBSTR 및 long.

함수 및 속성 페이지에 대한 DoDataExchange 자세한 내용은 ActiveX 컨트롤: 속성 페이지 문서를 참조하세요.

다음은 OLE 컨트롤의 속성 페이지를 만들고 관리하는 데 사용되는 매크로 목록입니다.

속성 페이지

속성 설명
BEGIN_PROPPAGEIDS 속성 페이지 ID 목록을 시작합니다.
END_PROPPAGEIDS 속성 페이지 ID 목록을 종료합니다.
PROPPAGEID 컨트롤 클래스의 속성 페이지를 선언합니다.

DDP_CBIndex

속성 페이지의 DoDataExchange 함수에서 이 함수를 호출하여 정수 속성의 값을 속성 페이지의 콤보 상자에 있는 현재 선택 항목의 인덱스와 동기화합니다.

void AFXAPI DDP_CBIndex(
    CDataExchange* pDX,
    int id,
    int& member,
    LPCTSTR pszPropName);

매개 변수

pDX
CDataExchange 개체에 대한 포인터입니다. 프레임워크는 해당 방향을 포함해서 데이터 교환의 컨텍스트를 설정하기 위해 이 개체를 제공합니다.

id
pszPropName에서 지정한 컨트롤 속성과 연결된 콤보 상자 컨트롤의 리소스 ID입니다.

member
id로 지정된 속성 페이지 컨트롤과 pszPropName으로 지정된 속성과 연결된 멤버 변수입니다.

pszPropName
ID로 지정된 콤보 상자 컨트롤과 교환할 컨트롤 속성의 속성 이름입니다.

설명

이 함수는 해당 DDX_CBIndex 함수 호출 전에 호출되어야 합니다.

요구 사항

헤더 afxctl.h

DDP_CBString

속성 페이지의 DoDataExchange 함수에서 이 함수를 호출하여 문자열 속성 값을 속성 페이지의 콤보 상자에 있는 현재 선택 영역과 동기화합니다.

void AFXAPI DDP_CBString(
    CDataExchange* pDX,
    int id,
    CString& member,
    LPCTSTR pszPropName);

매개 변수

pDX
CDataExchange 개체에 대한 포인터입니다. 프레임워크는 해당 방향을 포함해서 데이터 교환의 컨텍스트를 설정하기 위해 이 개체를 제공합니다.

id
pszPropName에서 지정한 컨트롤 속성과 연결된 콤보 상자 컨트롤의 리소스 ID입니다.

member
id로 지정된 속성 페이지 컨트롤과 pszPropName으로 지정된 속성과 연결된 멤버 변수입니다.

pszPropName
ID로 지정된 콤보 상자 문자열과 교환할 컨트롤 속성의 속성 이름입니다.

설명

이 함수는 해당 DDX_CBString 함수 호출 전에 호출되어야 합니다.

요구 사항

헤더 afxctl.h

DDP_CBStringExact

속성 페이지의 함수에서 이 함수를 호출하여 속성 페이지의 DoDataExchange 콤보 상자에서 현재 선택 항목과 정확히 일치하는 문자열 속성 값을 동기화합니다.

void AFXAPI DDP_CBStringExact(
    CDataExchange* pDX,
    int id,
    CString& member,
    LPCTSTR pszPropName);

매개 변수

pDX
CDataExchange 개체에 대한 포인터입니다. 프레임워크는 해당 방향을 포함해서 데이터 교환의 컨텍스트를 설정하기 위해 이 개체를 제공합니다.

id
pszPropName에서 지정한 컨트롤 속성과 연결된 콤보 상자 컨트롤의 리소스 ID입니다.

member
id로 지정된 속성 페이지 컨트롤과 pszPropName으로 지정된 속성과 연결된 멤버 변수입니다.

pszPropName
ID로 지정된 콤보 상자 문자열과 교환할 컨트롤 속성의 속성 이름입니다.

설명

이 함수는 해당 DDX_CBStringExact 함수 호출 전에 호출되어야 합니다.

요구 사항

헤더 afxctl.h

DDP_Check

속성 페이지의 DoDataExchange 함수에서 이 함수를 호출하여 속성 값을 연결된 속성 페이지 확인란 컨트롤과 동기화합니다.

void AFXAPI DDP_Check(
    CDataExchange* pDX,
    int id,
    int & member,
    LPCSTR pszPropName);

매개 변수

pDX
CDataExchange 개체에 대한 포인터입니다. 프레임워크는 해당 방향을 포함해서 데이터 교환의 컨텍스트를 설정하기 위해 이 개체를 제공합니다.

id
pszPropName에서 지정한 컨트롤 속성과 연결된 확인란 컨트롤의 리소스 ID입니다.

member
id로 지정된 속성 페이지 컨트롤과 pszPropName으로 지정된 속성과 연결된 멤버 변수입니다.

pszPropName
ID로 지정된 확인란 컨트롤과 교환할 컨트롤 속성의 속성 이름입니다.

설명

이 함수는 해당 DDX_Check 함수 호출 전에 호출되어야 합니다.

요구 사항

헤더 afxctl.h

DDP_LBIndex

속성 페이지의 DoDataExchange 함수에서 이 함수를 호출하여 정수 속성 값을 속성 페이지의 목록 상자에 있는 현재 선택 항목의 인덱스와 동기화합니다.

void AFXAPI DDP_LBIndex(
    CDataExchange* pDX,
    int id,
    int& member,
    LPCTSTR pszPropName);

매개 변수

pDX
CDataExchange 개체에 대한 포인터입니다. 프레임워크는 해당 방향을 포함해서 데이터 교환의 컨텍스트를 설정하기 위해 이 개체를 제공합니다.

id
pszPropName에서 지정한 컨트롤 속성과 연결된 목록 상자 컨트롤의 리소스 ID입니다.

member
id로 지정된 속성 페이지 컨트롤과 pszPropName으로 지정된 속성과 연결된 멤버 변수입니다.

pszPropName
ID로 지정된 목록 상자 문자열과 교환할 컨트롤 속성의 속성 이름입니다.

설명

이 함수는 해당 DDX_LBIndex 함수 호출 전에 호출되어야 합니다.

요구 사항

헤더 afxctl.h

DDP_LBString

속성 페이지의 DoDataExchange 함수에서 이 함수를 호출하여 문자열 속성의 값을 속성 페이지의 목록 상자에 있는 현재 선택 영역과 동기화합니다.

void AFXAPI DDP_LBString(
    CDataExchange* pDX,
    int id,
    CString& member,
    LPCTSTR pszPropName);

매개 변수

pDX
CDataExchange 개체에 대한 포인터입니다. 프레임워크는 해당 방향을 포함해서 데이터 교환의 컨텍스트를 설정하기 위해 이 개체를 제공합니다.

id
pszPropName에서 지정한 컨트롤 속성과 연결된 목록 상자 컨트롤의 리소스 ID입니다.

member
id로 지정된 속성 페이지 컨트롤과 pszPropName으로 지정된 속성과 연결된 멤버 변수입니다.

pszPropName
ID로 지정된 목록 상자 문자열과 교환할 컨트롤 속성의 속성 이름입니다.

설명

이 함수는 해당 DDX_LBString 함수 호출 전에 호출되어야 합니다.

요구 사항

헤더 afxctl.h

DDP_LBStringExact

속성 페이지의 목록 상자에서 현재 선택 항목과 정확히 일치하는 문자열 속성 값을 동기화하려면 속성 페이지의 DoDataExchange 함수에서 이 함수를 호출합니다.

void AFXAPI DDP_LBStringExact(
    CDataExchange* pDX,
    int id,
    CString& member,
    LPCTSTR pszPropName);

매개 변수

pDX
CDataExchange 개체에 대한 포인터입니다. 프레임워크는 해당 방향을 포함해서 데이터 교환의 컨텍스트를 설정하기 위해 이 개체를 제공합니다.

id
pszPropName에서 지정한 컨트롤 속성과 연결된 목록 상자 컨트롤의 리소스 ID입니다.

member
id로 지정된 속성 페이지 컨트롤과 pszPropName으로 지정된 속성과 연결된 멤버 변수입니다.

pszPropName
ID로 지정된 목록 상자 문자열과 교환할 컨트롤 속성의 속성 이름입니다.

설명

이 함수는 해당 DDX_LBStringExact 함수 호출 전에 호출되어야 합니다.

요구 사항

헤더 afxctl.h

DDP_PostProcessing

속성 페이지의 DoDataExchange 함수에서 이 함수를 호출하여 속성 값을 저장할 때 속성 페이지에서 컨트롤로 속성 값의 전송을 완료합니다.

void AFXAPI DDP_PostProcessing(CDataExchange * pDX);

매개 변수

pDX
CDataExchange 개체에 대한 포인터입니다. 프레임워크는 해당 방향을 포함해서 데이터 교환의 컨텍스트를 설정하기 위해 이 개체를 제공합니다.

설명

이 함수는 모든 데이터 교환 함수가 완료된 후에 호출해야 합니다. 예시:

void CMyAxPropPage::DoDataExchange(CDataExchange *pDX)
{
   DDP_Text(pDX, IDC_POSITIONEDIT, m_NeedlePosition, _T("NeedlePosition"));
   DDX_Text(pDX, IDC_POSITIONEDIT, m_NeedlePosition);
   DDV_MinMaxInt(pDX, m_NeedlePosition, 0, 3);
   DDP_PostProcessing(pDX);
}

요구 사항

헤더 afxctl.h

DDP_Radio

컨트롤의 DoPropExchange 함수에서 이 함수를 호출하여 속성 값을 연결된 속성 페이지 라디오 단추 컨트롤과 동기화합니다.

void AFXAPI DDP_Radio(
    CDataExchange* pDX,
    int id,
    int & member,
    LPCTSTR pszPropName);

매개 변수

pDX
CDataExchange 개체에 대한 포인터입니다. 프레임워크는 해당 방향을 포함해서 데이터 교환의 컨텍스트를 설정하기 위해 이 개체를 제공합니다.

id
pszPropName에서 지정한 컨트롤 속성과 연결된 라디오 단추 컨트롤의 리소스 ID입니다.

member
id로 지정된 속성 페이지 컨트롤과 pszPropName으로 지정된 속성과 연결된 멤버 변수입니다.

pszPropName
ID로 지정된 라디오 단추 컨트롤과 교환할 컨트롤 속성의 속성 이름입니다.

설명

이 함수는 해당 DDX_Radio 함수 호출 전에 호출되어야 합니다.

요구 사항

헤더 afxctl.h

DDP_Text

컨트롤의 DoDataExchange 함수에서 이 함수를 호출하여 속성 값을 연결된 속성 페이지 컨트롤과 동기화합니다.

void AFXAPI DDP_Text(
    CDataExchange* pDX,
    int id,
    BYTE & member,
    LPCTSTR pszPropName);

void AFXAPI DDP_Text(
    CDataExchange* pDX,
    int id,
    int & member,
    LPCTSTR pszPropName);

void AFXAPI DDP_Text(
    CDataExchange* pDX,
    int id,
    UINT & member,
    LPCTSTR pszPropName);

void AFXAPI DDP_Text(
    CDataExchange* pDX,
    int id,
    long & member,
    LPCTSTR pszPropName);

void AFXAPI DDP_Text(
    CDataExchange* pDX,
    int id,
    DWORD & member,
    LPCTSTR pszPropName);

void AFXAPI DDP_Text(
    CDataExchange* pDX,
    int id,
    float & member,
    LPCTSTR pszPropName);

void AFXAPI DDP_Text(
    CDataExchange* pDX,
    int id,
    double & member,
    LPCTSTR pszPropName);

void AFXAPI DDP_Text(
    CDataExchange* pDX,
    int id,
    CString & member,
    LPCTSTR pszPropName);

매개 변수

pDX
CDataExchange 개체에 대한 포인터입니다. 프레임워크는 해당 방향을 포함해서 데이터 교환의 컨텍스트를 설정하기 위해 이 개체를 제공합니다.

id
pszPropName에서 지정한 컨트롤 속성과 연결된 컨트롤의 리소스 ID입니다.

member
id로 지정된 속성 페이지 컨트롤과 pszPropName으로 지정된 속성과 연결된 멤버 변수입니다.

pszPropName
ID로 지정된 컨트롤과 교환할 컨트롤 속성의 속성 이름입니다.

설명

이 함수는 해당 DDX_Text 함수 호출 전에 호출되어야 합니다.

요구 사항

헤더 afxctl.h

BEGIN_PROPPAGEIDS

컨트롤의 속성 페이지 ID 목록 정의를 시작합니다.

BEGIN_PROPPAGEIDS(class_name,  count)

매개 변수

class_name
속성 페이지를 지정하는 컨트롤 클래스의 이름입니다.

count
컨트롤 클래스에서 사용하는 속성 페이지 수입니다.

설명

클래스의 멤버 함수를 정의하는 구현(.cpp) 파일에서 BEGIN_PROPPAGEIDS 매크로를 사용하여 속성 페이지 목록을 시작한 다음 각 속성 페이지에 대한 매크로 항목을 추가하고 END_PROPPAGEIDS 매크로를 사용하여 속성 페이지 목록을 완료합니다.

속성 페이지에 대한 자세한 내용은 ActiveX 컨트롤: 속성 페이지 문서를 참조하세요.

요구 사항

헤더 afxctl.h

END_PROPPAGEIDS

속성 페이지 ID 목록의 정의를 종료합니다.

END_PROPPAGEIDS(class_name)

매개 변수

class_name
속성 페이지를 소유하는 컨트롤 클래스의 이름입니다.

요구 사항

헤더 afxctl.h

PROPPAGEID

OLE 컨트롤에서 사용할 속성 페이지를 추가합니다.

PROPPAGEID(clsid)

매개 변수

clsid
속성 페이지의 고유 클래스 ID입니다.

설명

모든 PROPPAGEID 매크로는 컨트롤의 구현 파일에서 BEGIN_PROPPAGEIDS 매크로와 END_PROPPAGEIDS 매크로 사이에 배치해야 합니다.

요구 사항

헤더 afxctl.h

참고 항목

매크로 및 전역