Bug in Visual Studio 2008?
-
Hallo!
Ich habe versucht ein CSplitButton Control in einen Dialog einzubinden und eine Membervariable davon erstellt. Allerdings sagt mir der Compiler, dass er die Klasse CSplitButton nicht kennt.
Error 1 error C2146: syntax error : missing ';' before identifier 'm_SplitButton' ...Tja, dachte ich. Das kann doch nicht sein, die neuen Controls wurden doch groß angekündigt. Ein wenig herumprobiert...und den Fehler gefunden. Die CSplitButton Klasse existiert nur bei aktivierter UNICODE-Unterstützung. Ist das ein Bug oder Feature?
Hier ein Auszug aus der AfxWin.h:////////////////////////////////////////////// // Auszug aus der AfxWin.h (ab Zeile 3271) ////////////////////////////////////////////// #if (_WIN32_WINNT >= 0x600) && defined(UNICODE) class CSplitButton : public CButton { DECLARE_DYNAMIC(CSplitButton) // Constructors public: CSplitButton(); CSplitButton(UINT nMenuId, UINT nSubMenuId); CSplitButton(CMenu* pMenu); ~CSplitButton(); virtual BOOL Create(LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); void SetDropDownMenu(UINT nMenuId, UINT nSubMenuId); void SetDropDownMenu(CMenu* pMenu); protected: DECLARE_MESSAGE_MAP() afx_msg void OnDropDown(NMHDR* /*pNMHDR*/, LRESULT *pResult); void Cleanup(); CMenu * m_pMenu; UINT m_nMenuId; UINT m_nSubMenuId; }; #endif // (_WIN32_WINNT >= 0x600) && defined(CSplitButton)Ist das Problem bekannt bzw. gibt es dafür eine Lösung?
-
Wohl etwas zu voreilig gewesen.
http://msdn2.microsoft.com/en-us/library/bb531404.aspx