void CConsoleEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { if( nChar == 13 ) { MoveToEnd(); Refresh(); CString allText; GetWindowText(allText); allText = allText.Mid(m_last_title_pos); strncpy(m_cmd,allText, allText.GetLength() > (sizeof(m_cmd)-1) ? sizeof(m_cmd)-1 : allText.GetLength() ); // 回车 CEdit::OnChar(nChar, nRepCnt, nFlags); // 保存命令 SaveCommand(m_cmd); // 发送给父窗口 LRESULT result = SendMessageToParent(m_cmd,NM_CONSOLE_ENTER); // 清空命令 memset(m_cmd,0,sizeof(m_cmd)); // 根据父窗口返回值 // 父窗口返回0,表示处理完毕,需要返回初始命令状态 if (!result) { // 回车(空一行) CEdit::OnChar(nChar, nRepCnt, nFlags); // 添加初始命令提示 AddTexts(m_pretitle); } return; } else { if (nChar == 8) { if (GetCurrentPosition() <= m_last_title_pos) return; } // 输入必须在m_last_title_pos之后 if (GetCurrentPosition() < m_last_title_pos) MoveToEnd(); } /**************改用字符比较********************/ CEdit::OnChar(nChar, nRepCnt, nFlags); }
//--------------------------------------------------------------------------- void __fastcall TNewEn::btnOpenClick(TObject *Sender) { OpenDialog->Filter = "Model File|*.xml"; OpenDialog->DefaultExt = "*.XML"; OpenDialog->FileName = "*.XML"; if(g_pProject->m_bModified) { switch (Application->MessageBox("Model File has been modified, save£¿","Hint",MB_YESNOCANCEL)) { case ID_YES : SaveCommand(); break; case ID_CANCEL : return; } } ClearProject(); InitialProject(); if(OpenDialog->Execute()) { g_pProject->m_strFileName=OpenDialog->FileName; AnsiString exten = ExtractFileExt(OpenDialog->FileName); exten = exten.UpperCase(); if(exten == ".XML") { g_pProject->XMLDoc = XMLDocument1; g_pProject->LoadFromXML(g_pProject->m_strFileName); if( graphic==NULL) graphic=new Graphics::TBitmap(); if(g_pProject->m_strLayout.Length()>2) { try { graphic->LoadFromFile(g_pProject->m_strLayout); } catch (Exception &e) { ShowMessage(e.Message);delete graphic;graphic=NULL; } } this->Caption="Smart Environment----"+g_pProject->m_strFileName; } else { return; } FrameProperty->RefreshProjectTree(); Refresh(); } }
//Save the commands STL_ITERATE( bi, m_commands ) { SaveCommand( (*bi) ); }