반응형
Office CommandBars (컨텍스트 메뉴) 추가하는 COM 에드인이 최초 실행시에만 로드되는 문제.
"Caption", "Style", "Visible" 등 외에 "Tag"를 추가해야 함. 왜인지는 모름.
CComVariant AddtButton; // Grab our button to sink events... VariantClear(&vtParam); vtParam.vt = VT_BSTR; vtParam.bstrVal = ::SysAllocString(CALL_MENU_NAME); hr = CallMethod(vtCtrls.pdispVal, L"Item", &AddtButton, 1, &vtParam); VariantClear(&vtParam); // If we can't find it, make a new button... if (FAILED(hr)) { vtParam.vt = VT_I4; vtParam.lVal = 1; hr = CallMethod(vtCtrls.pdispVal, L"Add", &AddtButton, 1, &vtParam); if (FAILED(hr)) goto cleanup; vtParam.vt = VT_BSTR; vtParam.bstrVal = ::SysAllocString(CALL_MENU_NAME); hr = PutProperty(AddtButton.pdispVal, L"Caption", &vtParam); VariantClear(&vtParam); if (FAILED(hr)) goto cleanup; vtParam.vt = VT_I4; vtParam.lVal = 2; hr = PutProperty(AddtButton.pdispVal, L"Style", &vtParam); if (FAILED(hr)) goto cleanup; vtParam.vt = VT_I4; vtParam.lVal = 1; hr = PutProperty(AddtButton.pdispVal, L"Visible", &vtParam); if (FAILED(hr)) goto cleanup; vtParam.vt = VT_BSTR; vtParam.bstrVal = ::SysAllocString("버튼"); hr = PutProperty(AddtButton.pdispVal, L"Tag", &vtParam); if (FAILED(hr)) goto cleanup; }
반응형
'c++ > MFC' 카테고리의 다른 글
[MFC] Edit 에디트 입력 제한하기. SetLimitText는 길이만, 바이트 단위로 제한 안되므로... (0) | 2018.12.19 |
---|---|
[MFC] string to wstring/wstring to string변환/ CStringA <-> CStringW (0) | 2018.12.14 |
[MFC] error C2248: 'CObject::CObject' 해결 (0) | 2018.12.13 |
[MFC] 비트맵 배경을 스크롤하기 (0) | 2018.12.12 |
[MFC] 다이얼로그 배경에 bmp 비트맵 이미지 입하기. (0) | 2018.12.12 |