DevStudio style Dockable Menu Bar
(does not require MSIE)

 Developer Studio¸¦ º¸¸é ¸Þ´º°¡ Åø¹Ùó·³ ¶³¾îÁö°í ¾Æ¹«µ¥³ª ºÙ°í ÇÏ´Â °É º¼ ¼ö ÀÖ½À´Ï´Ù. Áö±ÝºÎÅÍ ±¸ÇöÇÏ·Á´Â °Ô ¹Ù·Î ±×°Ì´Ï´Ù. ¿©±â¼­ ¼Ò°³ÇÒ ÄÚµå´Â ¹°·Ð Codeguru¿¡¼­ ¿Â°Å±¸¿ä. Internet Explorer 4 ÀÌ»ó¹öÀüÀ̳ª »õ·Î ¹öÀü¾÷µÈ comctrl32.dll µµ ÇÊ¿äÇÏÁö ¾Ê¾Æ¿ä.
 ±×·³ Á÷Á¢ Äڵ带 ¸¸µé¾î º¸ÀÚ±¸¿ä.

(1) ¿ì¼± MenuBar.h, MenuBar.cpp, SubclassWnd.h, SubclassWnd.cpp ÀÌ ³× °³ÀÇ ÆÄÀÏÀ» ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡ÇÕ´Ï´Ù. ¿©±æ ´­·¯ ´Ù¿î¹Þ¾Æ¿ä.

(2) MainFrm.h ÆÄÀÏ¿¡ MeunBar.h¸¦ ÀÎŬ·çµåÇϰí, CMenuBarÀÇ ¸â¹öº¯¼ö·Î m_wndMenuBar¸¦ Ãß°¡ÇÕ´Ï´Ù. ¿ª½Ã ¾Æ·¡ÀÇ ¼Ò½ºÄڵ带 ÂüÁ¶ÇϽñæ.. ±½Àº ±Û¾¾ºÎºÐÀÇ È­»ìÇ¥ Ç¥½Ã°¡ °íÄ£ ºÎºÐÀÔ´Ï´Ù.

 

// MainFrm.h : interface of the CMainFrame class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_MAINFRM_H__59C6C2C9_5E4C_11D3_BEA6_C60B38563CF0__INCLUDED_)
#define AFX_MAINFRM_H__59C6C2C9_5E4C_11D3_BEA6_C60B38563CF0__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "MenuBar.h"           // <------------

class CMainFrame : public CFrameWnd
{
        
protected: // create from serialization only
        CMainFrame();
        DECLARE_DYNCREATE(CMainFrame)

// Attributes
public:

// Operations
public:

// Overrides
        // ClassWizard generated virtual function overrides
        //{{AFX_VIRTUAL(CMainFrame)
        virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
        //}}AFX_VIRTUAL

// Implementation
public:
        virtual ~CMainFrame();
#ifdef _DEBUG
        virtual void AssertValid() const;
        virtual void Dump(CDumpContext& dc) const;
#endif

protected:  // control bar embedded members
        CStatusBar  m_wndStatusBar;
        CToolBar    m_wndToolBar;
        CMenuBar    m_wndMenuBar;    //  <-------------

// Generated message map functions
protected:
        //{{AFX_MSG(CMainFrame)
        afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
                // NOTE - the ClassWizard will add and remove member functions here.
                //    DO NOT EDIT what you see in these blocks of generated code!
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
};

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

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_MAINFRM_H__59C6C2C9_5E4C_11D3_BEA6_C60B38563CF0__INCLUDED_)