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

📄 childfrm.h

📁 BCAM 1394 Driver
💻 H
字号:
//-----------------------------------------------------------------------------
//  (c) 2002 by Basler Vision Technologies
//  Section:  Vision Components
//  Project:  BCAM
//  $Header: ChildFrm.h, 6, 31.10.2002 15:02:26, Albrecht, M.$
//-----------------------------------------------------------------------------
/**
  \file     ChildFrm.h
  \brief Interface of the CChildFrame class
 *
 * CChildFrame represents a MDI child windows.
 *
 * Each child frame has a child window, the image view. The image view is responsible
 * for displaying the bitmaps grabbed by the associated camera objects.
 *
 */
//-----------------------------------------------------------------------------


#if !defined(AFX_CHILDFRM_H__8C4B8AD3_7C21_11D5_920C_0090278E5E96__INCLUDED_)
#define AFX_CHILDFRM_H__8C4B8AD3_7C21_11D5_920C_0090278E5E96__INCLUDED_

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

#include "resource.h"
#include "ImageView.h"

//------------------------------------------------------------------------------
// class CChildFrame
// Author: 
// Date: 20.09.2002
//------------------------------------------------------------------------------
/**
 * \brief  CChildFrame represents a MDI child windows.
 *
 * Each MDI child window is associated with a certain camera object. 
 * Each child frame has a child window, the image view. The image view is responsible
 * for displaying the bitmaps grabbed by the associated camera object.
 */
//------------------------------------------------------------------------------

class CChildFrame : public CMDIChildWindowImpl<CChildFrame>
{
public:
  DECLARE_FRAME_WND_CLASS(NULL, IDR_MDICHILD)

  CImageView m_View;

  CChildFrame(CCameraManager& CameraManager, CMainFrame& MainFrame ) : 
    m_CameraManager(CameraManager),
    m_View(CameraManager.GetCurrentDevice(), MainFrame)
  { }

  virtual void OnFinalMessage(HWND /*hWnd*/)
  {
	if (m_hMenu != NULL)
		::DestroyMenu(m_hMenu);
    delete this;
  }

  BEGIN_MSG_MAP(CChildFrame)
    MESSAGE_HANDLER(WM_CREATE, OnCreate)
    MESSAGE_HANDLER(WM_CHILDACTIVATE, OnChildActivate)
    MESSAGE_HANDLER(WM_FORWARDMSG, OnForwardMsg)
    MESSAGE_HANDLER(WM_CLOSE, OnClose)
    MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
    MESSAGE_HANDLER(WM_MDIACTIVATE, OnActivate)
    CHAIN_MSG_MAP(CMDIChildWindowImpl<CChildFrame>)
  END_MSG_MAP()

  LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled)
  {
    m_hWndClient = m_View.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, WS_EX_CLIENTEDGE);

    bHandled = FALSE;
    return 1;
  }

  LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled)
  {
	  if (m_hWndClient != NULL && ::IsWindow(m_hWndClient))
		  m_View.DestroyWindow();
		  

    bHandled = FALSE;
    return 1;
  }

  LRESULT OnForwardMsg(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/)
  {
    LPMSG pMsg = (LPMSG)lParam;

    if(CMDIChildWindowImpl<CChildFrame>::PreTranslateMessage(pMsg))
      return TRUE;

    return m_View.PreTranslateMessage(pMsg);
  }


  LRESULT OnChildActivate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled)
  {
    bHandled = FALSE;
    if ( GetFocus() != m_View )
      m_View.SetFocus();

    return 0;
  }

  LRESULT OnClose(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& bHandled)
  {
    bHandled = FALSE;
    m_View.SaveLayout();
    m_CameraManager.MDIChildClosed(this);

    return 0;
  }



  LRESULT OnActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
  {
    if ( (HWND) lParam == m_hWnd )
    {
      ATLTRACE("OnActivate: %ld \n", wParam);
      m_CameraManager.MDIChildActivated(this); 
      m_View.OnActivate( true );
    }
    if ( ( HWND ) wParam == m_hWnd  )
    {
      m_View.OnActivate( false );
    }

    bHandled = false;
    return 0;
  }

private:
  CCameraManager& m_CameraManager;

};

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

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

#endif // !defined(AFX_CHILDFRM_H__8C4B8AD3_7C21_11D5_920C_0090278E5E96__INCLUDED_)

⌨️ 快捷键说明

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