这种错是什么意思?

fcpanda 2003-05-15 01:47:00
e:\Documents and Settings\Johnson\Desktop\WordPad\BCGControlBar\BCGPopupMenu.cpp(88): error C2491: 'CBCGPopupMenu::messageMap' : definition of dllimport static data member not allowed

出错地指向了程序中的:
BEGIN_MESSAGE_MAP(CBCGPopupMenu, CMiniFrameWnd)
//{{AFX_MSG_MAP(CBCGPopupMenu)
ON_WM_CREATE()
ON_WM_SIZE()
ON_WM_PAINT()
ON_WM_MOUSEACTIVATE()
ON_WM_DESTROY()
ON_WM_KEYDOWN()
ON_WM_ERASEBKGND()
ON_WM_ACTIVATEAPP()
ON_WM_TIMER()
ON_WM_MOUSEMOVE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
...全文
48 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhp80 2003-05-16
  • 打赏
  • 举报
回复
关键是你在做什么?看起来像ActiveX/COM之类的?为什么必须用static?
另外class BCGCONTROLBARDLLEXPORT CBCGPopupMenu : public CMiniFrameWnd 中的 BCGCONTROLBARDLLEXPORT是什么?
qfpcn 2003-05-16
  • 打赏
  • 举报
回复
定义静态变量的值为动态输入是不允许的,你查查看!
fcpanda 2003-05-15
  • 打赏
  • 举报
回复
#pragma once

// BCGPopupMenu.h : header file
//

#include "bcgcontrolbar.h"
#include "BCGPopupMenuBar.h"

class CBCGToolbarMenuButton;
class CBCGMenuBar;
class CMenuPage;

/////////////////////////////////////////////////////////////////////////////
// CBCGPopupMenu frame

class BCGCONTROLBARDLLEXPORT CBCGPopupMenu : public CMiniFrameWnd
{
friend CBCGToolbarMenuButton;
friend CMenuPage;

DECLARE_SERIAL(CBCGPopupMenu)

public:
CBCGPopupMenu();
virtual ~CBCGPopupMenu();

protected:
CBCGPopupMenu(CMenuPage* pCustPage, LPCTSTR lpszTitle); // For customization only

// Attributes
public:
enum ANIMATION_TYPE
{
NO_ANIMATION,
UNFOLD,
SLIDE
};

BOOL m_bAutoDestroyParent;
HMENU GetMenu () const
{
return m_hMenu;
}

virtual CBCGPopupMenuBar* GetMenuBar ()
{
return &m_wndMenuBar;
}

void SetAutoDestroy (BOOL bAutoDestroy = TRUE)
{
m_bAutoDestroy = bAutoDestroy;
}

CBCGToolbarMenuButton* GetParentButton () const
{
return m_pParentBtn;
}

static CBCGPopupMenu::ANIMATION_TYPE GetAnimationType ()
{
return m_AnimationType;
}

static SetAnimationType (CBCGPopupMenu::ANIMATION_TYPE type)
{
m_AnimationType = type;
}

BOOL IsScrollable () const
{
return m_bScrollable;
}

void EnableScrolling (BOOL bEnable = TRUE)
{
m_bScrollable = bEnable;
}

protected:
CBCGToolbarMenuButton* m_pParentBtn;
CBCGPopupMenuBar m_wndMenuBar;
HMENU m_hMenu;
int m_x;
int m_y;
CSize m_FinalSize;
CSize m_AnimSize;
BOOL m_bIsAnimate;
BOOL m_bAutoDestroy;

CMenuPage* const m_pMenuCustomizationPage;
CString m_strCaption;

static ANIMATION_TYPE m_AnimationType;

BOOL m_bScrollable;
CRect m_rectScrollUp;
CRect m_rectScrollDn;
int m_iScrollMode; // -1 - Up, 0 - None, 1 - Down

static CImageList m_MenuImages;
static CString m_strClassName;

// Operations
public:
void SaveState ();

CBCGPopupMenu* GetParentPopupMenu () const;
CBCGToolBar* GetParentToolBar () const;

CBCGToolbarMenuButton* GetSelItem ();

int InsertItem (const CBCGToolbarMenuButton& button, int iInsertAt = -1);
int InsertSeparator (int iInsertAt = -1);

BOOL RemoveItem (int iIndex);
void RemoveAllItems ();

static void ActivatePopupMenu (CBCGPopupMenu* pPopupMenu);
void CloseMenu (BOOL bSetFocusToBar = FALSE);

protected:
void Initialize ();

BOOL IsScrollUpAvailable ();
BOOL IsScrollDnAvailable ();

void CollapseSubmenus ();

// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CBCGPopupMenu)
public:
virtual BOOL Create(CWnd* pWndParent, int x, int y, HMENU hMenu, BOOL bLocked = FALSE);
virtual void RecalcLayout(BOOL bNotify = TRUE);
protected:
virtual void PostNcDestroy();
//}}AFX_VIRTUAL

// Implementation
protected:

// Generated message map functions
//{{AFX_MSG(CBCGPopupMenu)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnPaint();
afx_msg int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message);
afx_msg void OnDestroy();
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnActivateApp(BOOL bActive, HTASK hTask);
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
//}}AFX_MSG

DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
zhp80 2003-05-15
  • 打赏
  • 举报
回复
错误不在这儿,你做的是什么?COM?
把.h贴上来看看?
fcpanda 2003-05-15
  • 打赏
  • 举报
回复
这样不行
poweruser 2003-05-15
  • 打赏
  • 举报
回复
意思大概是不允许m_AnimationType这个成员变量为静态的,把前面的static去掉试试
fcpanda 2003-05-15
  • 打赏
  • 举报
回复
不懂,那么怎样改?
谢谢
zhp80 2003-05-15
  • 打赏
  • 举报
回复
问题出在这儿:
...
static CBCGPopupMenu::ANIMATION_TYPE GetAnimationType ()
{
return m_AnimationType;
}
.
.
.
static ANIMATION_TYPE m_AnimationType;
...

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧