한 언어에서 다른 언어로 동적 전환을 지원하는 다중 언어 응용 프로그램을 프로그래밍하고 있습니다. CMFCRibbonPanel 클래스에는 GetName 함수가 있기 때문에 SetName 함수도 있어야한다고 생각합니다. 하지만 불행히도 원하는 기능을 찾을 수 없습니다. 리본 패널의 이름을 어떻게 동적으로 바꿉니 까? 고맙습니다.MFC 리본 패널의 이름을 바꾸려면 어떻게합니까?
2
A
답변
0
SetWindowText 기능을 사용해 볼 수 있습니다. 또한 텍스트의 그림을 무시하고 텍스트를 추가 할 수 있습니다.
희망이 도움이됩니다.
0
아마도 제거하고 다시 추가해야 할 것입니다. 이것이 다른 MFC 리본 기능의 작동 방식입니다.
3
패널 이름이 보호되어 있습니다.
CMFCRibbon에서 고유 한 클래스를 파생시키고 "SetName"메서드를 추가 할 수 있습니다.
class MyRibbonPanel : public CMFCRibbonPanel
{
public:
MyRibbonPanel(LPCTSTR lpszName = NULL, HICON hIcon = NULL) : CMFCRibbonPanel(lpszName, hIcon) {};
void SetName(CString& name) { m_strName = name; };
};
예를 들어, 그것은 당신이 VS 리본 UI를 통해 리본을 만든 경우에도 다른 사람에게 도움이 될 수 있으며 싶지 않아
CMFCRibbonCategory* pCategory = m_wndRibbonBar.AddCategory(_T("&Legume"),
IDR_PROPERTIES,
IDB_PROPERTIES_HC);
MyRibbonPanel* pMyPanel = (MyRibbonPanel*)pCategory->AddPanel(_T("Patate"), m_PanelImages.ExtractIcon(1));
pMyPanel->SetKeys(_T("zc"));
pMyPanel->SetCenterColumnVert();
pMyPanel->SetJustifyColumns();
CString s(_T("sdcasdc"));
pMyPanel->SetName(s);
+0
오래 전 게시되었지만 그럼에도 불구하고 대단히 감사합니다. –
2
(VS2010에서 더미 SDI 응용 프로그램을 만든 후) 수동으로 생성해야합니다.
이전 답변에서 작업하십시오.
패널에는 ID가 없기 때문에 포인터를 만들 때 패널을 선택할 수 없습니다. 그러나 패널에 ID가있는 요소가 포함 된 경우이를 사용하여 패널에 대한 포인터를 만든 다음 수동으로 생성하지 않고 이름을 바꿀 수 있습니다. 예를 들어 내 패널의 콤보를
, ID_TEST_COMBO이
CMFCRibbonComboBox* m_RibbonTestCombo;
MyRibbonPanel* m_ribbonPanel;
m_RibbonTestCombo= DYNAMIC_DOWNCAST(CMFCRibbonComboBox,m_wndRibbonBar.FindByID(ID_TEST_COMBO));
m_ribbonPanel = DYNAMIC_DOWNCAST(MyRibbonPanel, m_RibbonSSSRules->GetParentPanel());
CString s(_T("sdcasdc"));
m_ribbonPanel->SetName(s);
이 수동으로 패널을 만들 필요없이 텍스트를 변경할 수 있습니다
관련 문제
- 1. MFC CString을 바꾸려면 어떻게해야합니까?
- 2. Apache Rewrite 규칙에서 도메인 이름을 바꾸려면 어떻게합니까?
- 3. NetBeans IDE에서 기본 클래스의 이름을 바꾸려면 어떻게합니까?
- 4. MySQL에서 기본 키 열의 이름을 바꾸려면 어떻게합니까?
- 5. ESS에서 R 세션의 이름을 바꾸려면 어떻게합니까?
- 6. 사용자가 만든 SYSUSERS 테이블의 이름을 바꾸려면 어떻게합니까?
- 7. 기존 MFC 응용 프로그램에 리본 메뉴를 추가하려면 어떻게합니까?
- 8. SharePoint 웹 서비스를 사용하여 파일의 이름을 바꾸려면 어떻게합니까?
- 9. DOS의 현재 디렉토리 아래 숨겨진 디렉토리의 이름을 바꾸려면 어떻게합니까?
- 10. Visual Studio 작업 표시 줄 단추의 이름을 바꾸려면 어떻게합니까?
- 11. TreeView에서 노드의 이름을 바꾸려면 어떻게해야합니까?
- 12. ASP.NET에서 파일의 이름을 바꾸려면 어떻게해야합니까?
- 13. R 개체의 이름을 바꾸려면 어떻게해야합니까?
- 14. Microsoft WPF 리본 - Resources.xaml 파일에 저장된 리본 탭을 추가하려면 어떻게합니까?
- 15. bash의 목록에있는 파일의 이름을 바꾸려면 어떻게해야합니까?
- 16. XStream 목록 요소의 이름을 바꾸려면 어떻게해야합니까?
- 17. PowerShell을 사용하여 XML 노드의 이름을 바꾸려면 어떻게해야합니까?
- 18. 테이블 이름을 @tableB *에서 @tableA로 바꾸려면 어떻게해야합니까?
- 19. 16 진수로 이름을 바꾸려면 편집 하시겠습니까?
- 20. RegExp Replace를 사용하여 문장을 바꾸려면 어떻게합니까?
- 21. 여러 공백을 하나의 공백으로 바꾸려면 어떻게합니까?
- 22. MFC 기능 팩의 리본 단추 사용/사용 안 함
- 23. Windows XP MFC 리본 응용 프로그램을 실행하는 "부적절한 인수가 발생했습니다"
- 24. 누락 된 확장명을 가진 파일을 보거나 바꾸려면 어떻게합니까?
- 25. 사양 이름을 보려면 어떻게합니까?
- 26. Bash 스크립팅 : 처음에 숫자 문자를 삭제하도록 파일의 이름을 바꾸려면 어떻게해야합니까?
- 27. SubSonic Scaffolding 컨트롤 내부에서 열 테이블 이름의 이름을 바꾸려면 어떻게해야합니까?
- 28. 단어 문자 사이의 단어가 아닌 문자를 RegEx로 바꾸려면 어떻게합니까?
- 29. vbscript를 사용하여 한 파일의 텍스트를 다른 파일의 텍스트로 바꾸려면 어떻게합니까?
- 30. Unity 솔루션에서 사용되지 않는 Microsoft.Practices.Unity.Configuration.ContainerElement.Configure 메서드를 바꾸려면 어떻게합니까?
안녕하세요, 리본 패널이 창 아니고, CMFCRibbonPanel은 CWnd에서 파생되지 않습니다. SetWindowText에서 호출 할 수 없습니다. – zhangjz