⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfrm.h

📁 WTL for MFC Programmers中第7章的例子
💻 H
字号:
// MainFrm.h : interface of the CMainFrame class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_MAINFRM_H__47E80B25_1566_4A13_B4A9_7F8C49BAB4FC__INCLUDED_)
#define AFX_MAINFRM_H__47E80B25_1566_4A13_B4A9_7F8C49BAB4FC__INCLUDED_

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

#include "ClipSpyListCtrl.h"
#include "MySplitterWindowT.h"
#include "MyPaneContainer.h"

class CMainFrame : public CFrameWindowImpl<CMainFrame>,
                   public CUpdateUI<CMainFrame>,
                   public CMessageFilter
{
public:
    DECLARE_FRAME_WND_CLASS(NULL, IDR_MAINFRAME)

    BEGIN_MSG_MAP(CMainFrame)
        MSG_WM_CREATE(OnCreate)
        MSG_WM_SETTINGCHANGE(OnSettingChange)
        COMMAND_ID_HANDLER_EX(ID_APP_EXIT, OnFileExit)
        COMMAND_ID_HANDLER_EX(ID_FILE_SAVE, OnFileSave)
        COMMAND_ID_HANDLER_EX(ID_VIEW_STATUS_BAR, OnViewStatusBar)
        COMMAND_ID_HANDLER_EX(ID_APP_ABOUT, OnAppAbout)
        COMMAND_ID_HANDLER_EX(IDC_SHOW_BOTTOM_PANE, OnShowBottomPane)
        COMMAND_ID_HANDLER_EX(IDC_HIDE_BOTTOM_PANE, OnHideBottomPane)
        COMMAND_ID_HANDLER_EX(ID_PANE_CLOSE, OnHideBottomPane)
        COMMAND_ID_HANDLER_EX(IDC_LOCK_SPLITTERS, OnLockSplitters)
        COMMAND_ID_HANDLER_EX(IDC_UNLOCK_PANES, OnUnlockSplitters)
        COMMAND_ID_HANDLER_EX(IDC_PATTERN_BARS, OnPatternBars)
        COMMAND_ID_HANDLER_EX(IDC_NORMAL_BARS, OnNormalBars)
        COMMAND_ID_HANDLER_EX(IDC_COLOR_CONTAINERS, OnColoredContainers)
        COMMAND_ID_HANDLER_EX(IDC_NORMAL_CONTAINERS, OnNormalContainers)
        NOTIFY_CODE_HANDLER_EX(LVN_ITEMCHANGED, OnListItemchanged)
        NOTIFY_CODE_HANDLER_EX(LVN_DELETEALLITEMS, OnListDeleteallitems)
        CHAIN_COMMANDS_MEMBER(m_wndFormatList)
        CHAIN_MSG_MAP(CUpdateUI<CMainFrame>)
        CHAIN_MSG_MAP(CFrameWindowImpl<CMainFrame>)
        REFLECT_NOTIFICATIONS()
    END_MSG_MAP()

    BEGIN_UPDATE_UI_MAP(CMainFrame)
        UPDATE_ELEMENT(ID_VIEW_STATUS_BAR, UPDUI_MENUPOPUP)
        UPDATE_ELEMENT(ID_FILE_SAVE, UPDUI_MENUPOPUP)
    END_UPDATE_UI_MAP()

    // Message handlers
    BOOL    PreTranslateMessage(MSG* pMsg);

    LRESULT OnCreate ( LPCREATESTRUCT lpcs );
    void    OnSettingChange ( UINT uWhatChanged, LPCTSTR szWhatChanged );

    // Command handlers
    void    OnFileExit ( UINT uCode, int nID, HWND hwndCtrl );
    void    OnFileSave ( UINT uCode, int nID, HWND hwndCtrl );
    void    OnViewStatusBar ( UINT uCode, int nID, HWND hwndCtrl );
    void    OnAppAbout ( UINT uCode, int nID, HWND hwndCtrl );

    void    OnShowBottomPane ( UINT uCode, int nID, HWND hwndCtrl );
    void    OnHideBottomPane ( UINT uCode, int nID, HWND hwndCtrl );
    void    OnLockSplitters ( UINT uCode, int nID, HWND hwndCtrl );
    void    OnUnlockSplitters ( UINT uCode, int nID, HWND hwndCtrl );
    void    OnPatternBars ( UINT uCode, int nID, HWND hwndCtrl );
    void    OnNormalBars ( UINT uCode, int nID, HWND hwndCtrl );
    void    OnColoredContainers ( UINT uCode, int nID, HWND hwndCtrl );
    void    OnNormalContainers ( UINT uCode, int nID, HWND hwndCtrl );

    // Notification handlers
    LRESULT OnListItemchanged ( NMHDR* phdr );
    LRESULT OnListDeleteallitems ( NMHDR* phdr );

    // Operations
    void ClearDataList();
    void AddDataBlock ( HGLOBAL hg, UINT cbyDataSize );
    void AddEmptyBlock();

protected:
    CMySplitterWindow     m_wndVertSplit;
    CMyHorSplitterWindow  m_wndHorzSplit;
    CMyPaneContainer      m_wndTreeContainer;
    CMyPaneContainer      m_wndIEContainer;

    CClipSpyListCtrl    m_wndFormatList;
    CRichEditCtrl       m_wndDataViewer;

    void CreateProgressCtrlInStatusBar ( CProgressBarCtrl& );
    
    std::vector<LPBYTE> m_vpbyDataBlocks;
    std::vector<UINT> m_vuDataBlockSizes;

    void ShowDataBlock ( int nBlockIndex );
};

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

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

#endif // !defined(AFX_MAINFRM_H__47E80B25_1566_4A13_B4A9_7F8C49BAB4FC__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -