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

📄 tbareditctrlbase_handler.cpp

📁 BCAM 1394 Driver
💻 CPP
字号:
//-----------------------------------------------------------------------------
//  (c) 2002 by Basler Vision Technologies
//  Section:  Vision Components
//  Project:  BCAM
//  $Header: TBarEditCtrlBase_Handler.cpp, 4, 02.10.2002 14:31:29, Nebelung, H.$
//-----------------------------------------------------------------------------
/**
\file     TBarEditCtrlBase_Handler.cpp
\brief    implementation of the CTBarEditCtrlBase class.
*/
//////////////////////////////////////////////////////////////////////

#include <atlbase.h>
#include <atlapp.h>
extern  CAppModule _Module;
#include <atlwin.h>

#include "TBarEditCtrlBase.h"

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

/*!
OnKeyDown - handler of WM_KEYDOWN

  \param  uMsg
  \param  wParam
  \param  lParam
  \param  bHandled
*/
LRESULT CTBarEditCtrlBase::OnKeyDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
  LRESULT lRes = 0;                                                                               
  
  // check virtual keycode
  switch ( LOWORD(wParam) )
  {
  case VK_RETURN:
    if ( m_bWantReturn )
    {
      //                                                                                      ATLTRACE("CTBarEditCtrlBase::OnKeyDown VK_RETURN\n");
      UpdateEditText();
      
      if ( m_nPostMsgID )
      {
        PostParent(WM_COMMAND, MAKELPARAM(m_nPostMsgID, EN_UPDATE), (LPARAM) m_hEditCtrl);
        PostParent(WM_COMMAND, MAKELPARAM(m_nPostMsgID, EN_CHANGE), (LPARAM) m_hEditCtrl);
      }
      else
      {
        PostParent(WM_COMMAND, MAKELPARAM(m_nEditCtrlID, EN_UPDATE), (LPARAM) m_hEditCtrl);
        PostParent(WM_COMMAND, MAKELPARAM(m_nEditCtrlID, EN_CHANGE), (LPARAM) m_hEditCtrl);
      }
      
      m_bOnChange2Parent = true;
      m_bOnUpdate2Parent = true;
      bHandled = true;
      return 1;                                                                                               
    }
    break;
  case VK_TAB:
    PostParent(WM_NEXTDLGCTL, 0, 0);
    bHandled = true;
    return 0;
    break; 
    
  case VK_ESCAPE:
    if ( m_bWantReturn && m_bEscUndos )
    {
      //                                                                              ATLTRACE("CTBarEditCtrlBase::OnKeyDown VK_ESCAPE\n");
      UndoInput();
    }
    break;
  } /// switch ( LOWORD(wParam) )
  
  // pass to default handler
  //      ATLTRACE("CTBarEditCtrlBase::OnKeyDown default\n");
  bHandled = false; 
  return 0;                                                                                                               // continue processing message map
}

/*!
OnChar - handler of WM_CHAR

  \param  uMsg
  \param  wParam
  \param  lParam
  \param  bHandled
*/
LRESULT CTBarEditCtrlBase::OnChar(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
  if ( m_bWantReturn && ( wParam == VK_RETURN || wParam == VK_TAB ) )
  {
    // avoid beeps if return or tab is pressed
    bHandled = true;
    return 0;
  }
  
  bHandled = false;
  return 0;
}

/*!
OnHScroll - handler of WM_HSCROLL

  \param  uMsg
  \param  wParam
  \param  lParam
  \param  bHandled
*/
LRESULT CTBarEditCtrlBase::OnHScroll(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
  // belongs this message to the associated control ?
#if 1
  if ( CTBarCtrlBase::m_hTBarCtrl != (HWND) lParam )
  {
    bHandled = false;
    return 0;
  }
#else
  int nID = ::GetDlgCtrlID( (HWND) lParam );
  
  if ( CTBarCtrlBase::m_nTBarCtrlID != nID )
  {
    bHandled = false;
    return 0;
  }
#endif
  
  ATLASSERT( CTBarCtrlBase::IsWindow() );
  
  return HScroll(uMsg, wParam, lParam, bHandled);
}

/*!
OnChange - handler of EN_CHANGE

  \param  uNotifyCode
  \param  wID
  \param  hWndCtrl
  \param  bHandled
*/

LRESULT CTBarEditCtrlBase::OnChange(WPARAM uNotifyCode, WPARAM wID, HWND hWndCtrl, BOOL& bHandled)
{
  // belongs this message to the associated control ?
  if ( CTBarEditCtrlBase::m_hEditCtrl != hWndCtrl )
  {
    bHandled = false;
    return 0;
  }
  
  //      ATLTRACE("CTBarEditCtrlBase::OnChange\n");
  
  if ( !m_bWantReturn  )
  {
    if ( !m_bSkipEnChange  )
    {
      if ( m_nPostMsgID )
        PostParent(WM_COMMAND, MAKELPARAM(m_nPostMsgID, EN_CHANGE), (LPARAM) hWndCtrl);
      else
        bHandled = !m_bPostMsgEnabled;// let message pass to other handlers
    }
  }
  else if ( m_bOnChange2Parent )
  {
    if ( m_nPostMsgID )
      PostParent(WM_COMMAND, MAKELPARAM(m_nPostMsgID, EN_CHANGE), (LPARAM) hWndCtrl);
    else
      bHandled = !m_bPostMsgEnabled;  // let message pass to other handlers
  }
  
  m_bSkipEnChange    = false;
  m_bOnChange2Parent = false;
  return 0;                                                                                                               // continue processing message map
}

/*!
OnUpdate - handler of EN_UPDATE

  \param  uNotifyCode
  \param  wID
  \param  hWndCtrl
  \param  bHandled
*/
LRESULT CTBarEditCtrlBase::OnUpdate(WPARAM uNotifyCode, WPARAM wID, HWND hWndCtrl, BOOL& bHandled)
{
  // belongs this message to the associated control ?
  if ( CTBarEditCtrlBase::m_hEditCtrl != hWndCtrl )
  {
    bHandled = false;
    return 0;
  }
  
  //      ATLTRACE("CTBarEditCtrlBase::OnUpdate\n");
  
  if ( !m_bWantReturn && m_bLiveUpdateEnabled )
  {
    // continue with message, if UpdateEditText doesn't call SetWindowText()...
    m_bSkipEnChange = UpdateEditText();
    
    if ( !m_bSkipEnChange )
    {                                                                                                                                       
      if ( m_nPostMsgID )
        PostParent(WM_COMMAND, MAKELPARAM(m_nPostMsgID, EN_UPDATE), (LPARAM) hWndCtrl);
      else
        bHandled = !m_bPostMsgEnabled;// let message pass to other handlers
    }
  }
  else if ( m_bOnUpdate2Parent )
  {
    if ( m_nPostMsgID )
      PostParent(WM_COMMAND, MAKELPARAM(m_nPostMsgID, EN_UPDATE), (LPARAM) hWndCtrl);
    else
      bHandled = !m_bPostMsgEnabled;  // let message pass to other handlers
  }
  
  m_bOnUpdate2Parent = false;
  return 0;                                                                                                               // continue processing message map
}

/*!
OnKillFocus - handler of EN_KILLFOCUS

  \param  uNotifyCode
  \param  wID
  \param  hWndCtrl
  \param  bHandled
*/
LRESULT CTBarEditCtrlBase::OnKillFocus(WPARAM uNotifyCode, WPARAM wID, HWND hWndCtrl, BOOL& bHandled)
{
  //      ATLTRACE("CTBarEditCtrlBase::OnKillFocus\n");
  
  if ( m_bWantReturn && m_bKillFocus )
  {
    //              ATLTRACE("CTBarEditCtrlBase::OnKillFocus\n");
    
    if ( UpdateEditText() ) 
    {
      if ( m_nPostMsgID )
      {
        PostParent(WM_COMMAND, MAKELPARAM(m_nPostMsgID, EN_UPDATE), (LPARAM) m_hEditCtrl);
        PostParent(WM_COMMAND, MAKELPARAM(m_nPostMsgID, EN_CHANGE), (LPARAM) m_hEditCtrl);
      }
      else
      {
        PostParent(WM_COMMAND, MAKELPARAM(m_nEditCtrlID, EN_UPDATE), (LPARAM) m_hEditCtrl);
        PostParent(WM_COMMAND, MAKELPARAM(m_nEditCtrlID, EN_CHANGE), (LPARAM) m_hEditCtrl);
      }
      
      m_bOnChange2Parent = true;
      m_bOnUpdate2Parent = true;
    }
    return 1;                                                                                                       // stop processing message map
  }
  else if ( m_bWantReturn && !m_bKillFocus )
    UndoInput();
  else
    bHandled = false;
  
  return 0;                                                                                                               // continue processing message map
}

⌨️ 快捷键说明

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