아래처럼 프로퍼티를 입력한 후..
CMFCPropertyGridProperty* pGroup=NULL;
pGroup = new CMFCPropertyGridProperty(_T("tests"));
pGroup->AddSubItem( new CMFCPropertyGridProperty( ..... ) );
pGroup->AddSubItem( new CMFCPropertyGridProperty( ..... ) );
pGroup->AddSubItem( new CMFCPropertyGridProperty( ..... ) );
pGroup->AddSubItem( new CMFCPropertyGridProperty( ..... ) );
pGroup->AddSubItem( new CMFCPropertyGridProperty( ..... ) );
.....
디버깅해서 보니 값이 CMFCPropertyGridProperty의 서브아이템으로 들어가 있는 것을 알수 있었다
_view->_propertyGridLeft.AddProperty(pGroup); //프로퍼티 추가
CMFCPropertyGridProperty* pGroup_0=_view->_propertyGridLeft.GetProperty(0);
// _propertyGridLeft : 프로퍼티전역 변수에서 인덱스로 해당 프로퍼티를 얻어온다
CMFCPropertyGridProperty* subGrpup_0 = pGroup_0->GetSubItem(0); 얻어온 프로퍼티의 서브아이템의 순서
CMFCPropertyGridProperty* subGrpup_5 = pGroup_0->GetSubItem(5); 에 대해서 이처럼 해당 값을 얻을 수 있는 서브프로퍼티를 얻을 수있고
COleVariant vars= subGrpup_0->GetValue(); 우선 이렇게 얻어온 후
COleVariant vars5= subGrpup_5->GetValue();
입력했던 값 형태에 따라 변수 형태만 지정해서 읽어오면 된다
float varf = vars.fltVal; //0번째 서브아이템에 입력했던 값은 float 였고
wchar_t* strs = vars5.bstrVal; //5번째 서브아이템에 입펵했떤 값은 wchar_t 였다
변수 값은 oaidl.h 헤더파일중
struct tagVARIANT
{
union
{
struct __tagVARIANT
{
VARTYPE vt;
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
union
{
LONGLONG llVal;
LONG lVal;
BYTE bVal;
SHORT iVal;
FLOAT fltVal;
DOUBLE dblVal;
VARIANT_BOOL boolVal;
_VARIANT_BOOL bool;
SCODE scode;
CY cyVal;
DATE date;
BSTR bstrVal;
IUnknown *punkVal;
IDispatch *pdispVal;
SAFEARRAY *parray;
BYTE *pbVal;
SHORT *piVal;
LONG *plVal;
LONGLONG *pllVal;
FLOAT *pfltVal;
DOUBLE *pdblVal;
VARIANT_BOOL *pboolVal;
_VARIANT_BOOL *pbool;
SCODE *pscode;
CY *pcyVal;
DATE *pdate;
BSTR *pbstrVal;
IUnknown **ppunkVal;
IDispatch **ppdispVal;
SAFEARRAY **pparray;
VARIANT *pvarVal;
PVOID byref;
CHAR cVal;
USHORT uiVal;
ULONG ulVal;
ULONGLONG ullVal;
INT intVal;
UINT uintVal;
DECIMAL *pdecVal;
CHAR *pcVal;
USHORT *puiVal;
ULONG *pulVal;
ULONGLONG *pullVal;
INT *pintVal;
UINT *puintVal;
struct __tagBRECORD
{
PVOID pvRecord;
IRecordInfo *pRecInfo;
} __VARIANT_NAME_4;
} __VARIANT_NAME_3;
} __VARIANT_NAME_2;
DECIMAL decVal;
} __VARIANT_NAME_1;
} ;
typedef VARIANT *LPVARIANT;
구조체에서 찾아볼 수 있으며 원하는 형식의 변수로 읽어오면 된다
이것에 대해 입력 메세지( API 의 입력키 메세지 )처럼 처리하기도 한다는 것을 검색하다 알게 됐다[링크 걸어놓음]
http://knob.egloos.com/2785616
'프로그래밍(Programming) > MFC&API' 카테고리의 다른 글
Ribbon Controls / MSDN (0) | 2013.02.11 |
---|---|
MFC Feature Pack Tutorial – Part 3 – CMFCPropertyGridCtrl (0) | 2013.02.01 |
CMFCPropertyGridProperty bool, 숫자만 입력 받는 방법 (0) | 2013.01.28 |
VS2010 VC++ 살펴보기 01 : CMFCLinkCtrl, CMFCShellTreeCtrl, CMFCShe ... (0) | 2013.01.28 |
MFC PropertyGrid Control (Column Header Size 조절하기) (0) | 2013.01.23 |