www.pudn.com > c02 vc6.rar > DisassemblyCtrl.cpp


// DisassemblyCtrl.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "c02ide.h" 
#include "DisassemblyCtrl.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CDisassemblyCtrl 
 
CDisassemblyCtrl::CDisassemblyCtrl() 
{ 
} 
 
CDisassemblyCtrl::~CDisassemblyCtrl() 
{ 
} 
 
 
BEGIN_MESSAGE_MAP(CDisassemblyCtrl, CRichEditCtrl) 
	//{{AFX_MSG_MAP(CDisassemblyCtrl) 
	ON_WM_LBUTTONDBLCLK() 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CDisassemblyCtrl message handlers 
 
void CDisassemblyCtrl::OnLButtonDblClk(UINT nFlags, CPoint point)  
{ 
	// TODO: Add your message handler code here and/or call default 
	 
	CRichEditCtrl::OnLButtonDblClk(nFlags, point); 
	int n_selline=0; 
		//主窗口指针 
    CMainFrame *m_pCMainFrame=(CMainFrame*)(AfxGetApp()->m_pMainWnd); 
   
	CMDIFrameWnd * nowframe = (CMDIFrameWnd*)AfxGetApp()->m_pMainWnd; 
	//活动子窗口指针 
	CMDIChildWnd *nowchild = nowframe->MDIGetActive(); 
   	CCrystalTextView *m_pchildview = (CCrystalTextView *)nowchild->GetActiveView(); 
	CC02IDEView *m_pview = (CC02IDEView *)nowchild->GetActiveView(); 
 
//	CCrystalEditView *m_pchildeditview = (CCrystalEditView *)nowchild->GetActiveView(); 
 
	CHARRANGE cr; 
 
	GetSel(cr); 
//SSERT_VALIDTEXTPOS(ptCursorPos); 
	//当前光标位置的行索引 
    int n_selstart = cr.cpMin; 
  
 
	int i=0; 
//	int j=0; 
//	while ((i<=n_cal)&&(LineIndex(i)LineLength(i); 
//		n_selstart=n_selstart-j; 
		i++; 
		//双击的最后一行,退出 
//		if(i>n_cal&&LineIndex(i)com.GetLineno(n_selline); 
	CMDIChildWnd *m_pgotochildf=NULL; 
	m_pgotochildf=nowchild; 
 
 
		//获得双击行对应的搜索结果指针 
//		inf_search=(SearchInf * )a_searchinfo.GetAt(n_selline-1); 
		//获得双击行对应的子窗口指针 
//	 
		//获得子窗口活动视图 
		CCrystalTextView* m_pexpandview=NULL;  
		m_pexpandview=(CCrystalTextView*)m_pgotochildf->GetActiveView(); 
	   CC02IDEView* m_peditview=(CC02IDEView*)m_pgotochildf->GetActiveView(); 
	   //如果子窗口存在 
		if(m_pgotochildf!=NULL) 
		{ 
			//子窗口激活 
			m_pgotochildf->MDIActivate();  
	        //子窗口设置为最前 
		    m_pgotochildf->BringWindowToTop(); 
			//子窗口设置为焦点 
			m_pgotochildf->SetFocus(); 
//	        //编辑控件的第一可见行 
//			int nFirst = myeditctrl.GetFirstVisibleLine (); 
			//查找结果所在行 
//			int gotoline=inf_search->n_lineno; 
            //查找结果所在列 
			int gotorow=0; 
			m_pexpandview->ScrollToLine(gotoline); 
			//设置当前选择 
			CPoint pselstart,pselend; 
			pselstart.y=gotoline; 
			pselstart.x=gotorow; 
			pselend.y=gotoline; 
			pselend.x=gotorow+findstring.GetLength(); 
			m_pexpandview->SetSelection(pselstart,pselend); 
			m_pexpandview->SetCursorPos(pselend); 
			m_pexpandview->EnsureVisible(pselend); 
	        //子窗口激活 
			m_pgotochildf->MDIActivate();  
	        //子窗口设置为最前 
		    m_pgotochildf->BringWindowToTop(); 
			//子窗口设置为焦点 
			m_pgotochildf->SetFocus(); 
		} 
	 
 
 
 
 
}