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?




Anmelden zum Antworten