속성 페이지(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 | 컨트롤의 속성 페이지에 있는 컨트롤을 컨트롤의 속성과 연결합니다. 이 함수는 , double short BSTR 및 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