그동안 VC ++에서 작업을 중단했고 지금은 VC ++에서 개발을 다시 시작한 프로젝트가 있습니다 .... 지금 이상한 문제가 있습니다. 컨트롤의 레이블이 전혀 변경되지 않습니다. mfcoutlookbar 초기화를위한 내 코드
BOOL CMainFrame::CreateOutlookBar(CMFCOutlookBar& bar, UINT uiID, CMFCShellTreeCtrl& tree, CCalendarBar& calendar,CListCtrlBar &listctrl,int nInitialWidth)
{
bar.SetMode2003();
BOOL bNameValid;
CString strTemp;
bNameValid = strTemp.LoadString(IDS_SHORTCUTS);
ASSERT(bNameValid);
if (!bar.Create(strTemp, this, CRect(0, 0, nInitialWidth, 32000), uiID, WS_CHILD | WS_VISIBLE | CBRS_LEFT))
{
return FALSE; // fail to create
}
CMFCOutlookBarTabCtrl* pOutlookBar = (CMFCOutlookBarTabCtrl*)bar.GetUnderlyingWindow();
if (pOutlookBar == NULL)
{
ASSERT(FALSE);
return FALSE;
}
pOutlookBar->EnableInPlaceEdit(FALSE); //we dont want editing
static UINT uiPageID = 1;
// can float, can autohide, can resize, CAN NOT CLOSE
DWORD dwStyle = AFX_CBRS_FLOAT | AFX_CBRS_AUTOHIDE | AFX_CBRS_RESIZE;
CRect rectDummy(0, 0, 0, 0);
const DWORD dwTreeStyle = WS_CHILD | WS_VISIBLE | TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS;
//Create tree
tree.Create(dwTreeStyle, rectDummy, &bar, 1200);
//bNameValid = strTemp.LoadString(IDS_FOLDERS);
ASSERT(bNameValid);
pOutlookBar->AddControl(&tree, L"Folders", 2, TRUE, dwStyle);
//create calender
calendar.Create(rectDummy, &bar, 1201);
// bNameValid = strTemp.LoadString(IDS_CALENDAR);
// ASSERT(bNameValid);
pOutlookBar->AddControl(&calendar, L"CALLLLLL",1, TRUE, dwStyle);
//create list control bar
listctrl.Create(rectDummy,&bar,1202);
// bNameValid = strTemp.LoadString(IDS_DASHBOARD);//Dashboard to check the statistics and statical reports
// ASSERT(bNameValid);
pOutlookBar->AddControl(&listctrl, L"Some", 0, TRUE, dwStyle); //the digit represent icon
bar.SetPaneStyle(bar.GetPaneStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
pOutlookBar->SetImageList(theApp.m_bHiColorIcons ? IDB_PAGES_HC : IDB_PAGES, 24);
pOutlookBar->SetToolbarImageList(theApp.m_bHiColorIcons ? IDB_PAGES_SMALL_HC : IDB_PAGES_SMALL, 16);
pOutlookBar->RecalcLayout();
BOOL bAnimation = theApp.GetInt(_T("OutlookAnimation"), TRUE);
CMFCOutlookBarTabCtrl::EnableAnimation(bAnimation);
bar.SetButtonsFont(&afxGlobalData.fontBold);
return TRUE;
}
두 개의 다른 컨트롤을 사용하고있는 경우 텍스트 레이블 e ,, g,
pOutlookBar->AddControl(&listctrl, L"Some", 0, TRUE, dwStyle);
그리고 다른 하나는
pOutlookBar->AddControl(&calendar, L"CALLLLLL",1, TRUE, dwStyle);
이제 레이블 "Some"및 "CALLLLLL"이 표시되지 않습니다. 모든 것을 시도했지만 여전히 기본 텍스트를 표시하는 이유를 모르겠습니다.
"캘린더"및 "폴더"
문자열 테이블 내부의 모든 텍스트도 변경했습니다.이 코드는 Office 2000을 사용하는 마법사에 의해 Visual Studio C ++에서 생성됩니다.
내가하는 실수는 무엇입니까 ???
좋아 마지막으로 문제는 캐시, 모든 응용 프로그램의 outlookbased 막대는 레지스트리에 캡션과 레이블을 저장하므로 솔루션을 다시 빌드하면 레지스트리 항목을 삭제하지 않는 한 올바른 탭 캡션이 제공되지 않습니다. 그 응용 프로그램.
HKEY_USERS \ S-1-5-21-3153867254-3211561466-2840709754-1000 \ Software \ Local AppWizard 생성 응용 프로그램 \ test2
그런 다음이 test2 프로젝트 키를 삭제하십시오 .... 그런 다음 응용 프로그램을 실행하면 올바른 레이블이 표시됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다