BLOG main image




아래처럼 프로퍼티를 입력한 후..



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  






반응형

+ Recent posts