从哪里才能得到MFC的实现源代码?(VS的MFC文件夹下只有部分扩展代码)
从哪里得到MFC的源代码?比如偶在VS的afxwin.h中得到了Cmenu的头文件,但却找不到它的具体实现文件,对应的应该有个afxwin.cpp吧?但却没有,MS已经把它做成.lib了,没法看到。
那在哪里才能得到它的实现文件的?
在VS的MFC文件夹里有部分.cpp文件,但都是对MFC的扩展,没有最初的实现函数。
比如:
/////////////////////////////////////////////////////////////////////////////
// CMenu
class CMenu : public CObject
{
DECLARE_DYNCREATE(CMenu)
public:
// Constructors
CMenu();
BOOL CreateMenu();
BOOL CreatePopupMenu();
BOOL LoadMenu(LPCTSTR lpszResourceName);
BOOL LoadMenu(UINT nIDResource);
BOOL LoadMenuIndirect(const void* lpMenuTemplate);
BOOL DestroyMenu();
// Attributes
HMENU m_hMenu; // must be first data member
HMENU GetSafeHmenu() const;
operator HMENU() const;
static CMenu* PASCAL FromHandle(HMENU hMenu);
static void PASCAL DeleteTempMap();
BOOL Attach(HMENU hMenu);
HMENU Detach();
// CMenu Operations
BOOL DeleteMenu(UINT nPosition, UINT nFlags);
BOOL TrackPopupMenu(UINT nFlags, int x, int y,
CWnd* pWnd, LPCRECT lpRect = 0);
BOOL operator==(const CMenu& menu) const;
BOOL operator!=(const CMenu& menu) const;
// CMenuItem Operations
BOOL AppendMenu(UINT nFlags, UINT nIDNewItem = 0,
LPCTSTR lpszNewItem = NULL);
BOOL AppendMenu(UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp);
UINT CheckMenuItem(UINT nIDCheckItem, UINT nCheck);
UINT EnableMenuItem(UINT nIDEnableItem, UINT nEnable);
UINT GetMenuItemCount() const;
UINT GetMenuItemID(int nPos) const;
UINT GetMenuState(UINT nID, UINT nFlags) const;
int GetMenuString(UINT nIDItem, LPTSTR lpString, int nMaxCount,
UINT nFlags) const;
int GetMenuString(UINT nIDItem, CString& rString, UINT nFlags) const;
BOOL GetMenuItemInfo(UINT nIDItem, LPMENUITEMINFO lpMenuItemInfo,
BOOL fByPos = FALSE);
CMenu* GetSubMenu(int nPos) const;
BOOL InsertMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem = 0,
LPCTSTR lpszNewItem = NULL);
BOOL InsertMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem,
const CBitmap* pBmp);
BOOL ModifyMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem = 0,
LPCTSTR lpszNewItem = NULL);
BOOL ModifyMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem,
const CBitmap* pBmp);
BOOL RemoveMenu(UINT nPosition, UINT nFlags);
BOOL SetMenuItemBitmaps(UINT nPosition, UINT nFlags,
const CBitmap* pBmpUnchecked, const CBitmap* pBmpChecked);
BOOL CheckMenuRadioItem(UINT nIDFirst, UINT nIDLast, UINT nIDItem, UINT nFlags);
BOOL SetDefaultItem(UINT uItem, BOOL fByPos = FALSE);
UINT GetDefaultItem(UINT gmdiFlags, BOOL fByPos = FALSE);
// Context Help Functions
BOOL SetMenuContextHelpId(DWORD dwContextHelpId);
DWORD GetMenuContextHelpId() const;
// Overridables (must override draw and measure for owner-draw menu items)
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
// Implementation
public:
virtual ~CMenu();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
static CMenu* PASCAL CMenu::FromHandlePermanent(HMENU hMenu);
};
上面是CMenu的头文件内容。
请问到哪里才能得到MFC的实现文件?