//add by xlc on 071224 // SearchRangeDlg.cpp : implementation file // #include "stdafx.h" #include "SearchRangeDlg.h" #include "cameradlg.h" #include "axlock.h" #include "setvideodlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CSearchRangeDlg dialog CSearchRangeDlg::CSearchRangeDlg(CWnd* pParent /*=NULL*/) : CModelessDialog(CSearchRangeDlg::IDD, pParent),m_ssEnt(SS_FREE) { //{{AFX_DATA_INIT(CSearchRangeDlg) m_iFindRange = 1; //}}AFX_DATA_INIT m_strType = _T(""); } void CSearchRangeDlg::DoDataExchange(CDataExchange* pDX) { CModelessDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CSearchRangeDlg) DDX_CBIndex(pDX, IDC_COMBO_SEARCH, m_iFindRange); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CSearchRangeDlg, CModelessDialog) //{{AFX_MSG_MAP(CSearchRangeDlg) ON_WM_DESTROY() ON_BN_CLICKED(IDC_BUTTON_PICK, OnButtonSel) ON_CBN_SELCHANGE(IDC_COMBO_SEARCH, OnSelchangeComboFindrange) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CSearchRangeDlg message handlers BOOL CSearchRangeDlg::OnInitDialog() { CModelessDialog::OnInitDialog(); //加载“选择对象”按钮的位图 CBitmap bitmap; bitmap.LoadBitmap(IDB_BITMAP_SELECT); CButton *pButton = (CButton *)GetDlgItem(IDC_BUTTON_PICK); pButton->SetBitmap((HBITMAP)bitmap); bitmap.Detach(); if (!m_wndToolTip.Create(pButton)) { return FALSE; } m_wndToolTip.AddTool(pButton, _T("选取对象")); UpdateData(FALSE); return TRUE; } //选择图元 void CSearchRangeDlg::OnButtonSel() { UpdateData(TRUE); HideDialog(TRUE); const TCHAR *szPrompt[2]={_T("请选择搜索区域的范围:"),_T("移除物体")}; RBList entList(RTDXF0, m_strType, NULL); m_ssEnt.Free(); if (m_ssEnt.Get(_T(":$"),szPrompt , NULL, entList) == RTNORM) { m_iFindRange = 0; } HideDialog(FALSE); UpdateData(FALSE); } //选择了查找范围后,重新构造图元选择集 void CSearchRangeDlg::OnSelchangeComboFindrange() { UpdateData(TRUE); if ( m_iFindRange == 0 ) { OnButtonSel(); } } //隐藏或者显示对话框 void CSearchRangeDlg::HideDialog(BOOL bFlag) { if (bFlag) { GetParent()->EnableWindow(TRUE); GetParent()->SetFocus(); GetParent()->SetActiveWindow(); ShowWindow(SW_HIDE); GetParent()->RedrawWindow(); } else { GetParent()->EnableWindow(FALSE); EnableWindow(TRUE); SetActiveWindow(); ShowWindow(SW_SHOW); GetParent()->EnableWindow(TRUE); } } BOOL CSearchRangeDlg::PreTranslateMessage(MSG* pMsg) { m_wndToolTip.RelayEvent(pMsg); return CModelessDialog::PreTranslateMessage(pMsg); } void CSearchRangeDlg::OnDestroy() { m_wndToolTip.DestroyWindow(); CModelessDialog::OnDestroy(); } void CSearchRangeDlg::OnOK() { if (m_iFindRange==1) { RBList entList(RTDXF0, m_strType, NULL); m_ssEnt.Free(); if ( m_ssEnt.Get(_T("X"), NULL, NULL, entList ) != RTNORM) { MessageBox(_T("搜索失败!")); } } CModelessDialog::OnOK(); }