void CSearchBox::OnSelendok() { // TODO: Add your control notification handler code here if( m_bDoNothing ) return; int nSel = GetCurSel(); m_hwndLastFocus = NULL; m_bSegmentEnd = TRUE; if( CB_ERR != nSel ) { SetCurSel( nSel ); if( m_bShowOnSel ) { DWORD dwData = GetItemData( nSel ); CView * pView = AfxGetStaticDoc()->GetActiveView(); if( dwData & SEARCHBOX_SIGNBIT_STT ) AfxShowStockTech( dwData & ~SEARCHBOX_SIGNBIT_STT ); else if( dwData & SEARCHBOX_SIGNBIT_ACCE ) AfxExecuteAccelerator( dwData & ~SEARCHBOX_SIGNBIT_ACCE ); else if( pView && pView->IsKindOf( RUNTIME_CLASS(CRealTimeView) ) ) AfxShowStockRealTime( dwData, FALSE ); else AfxShowStockGraph( dwData, FALSE ); return; } } SetCurrentWindowText( ); if( m_bAutoHide ) SetWindowPos( NULL, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_HIDEWINDOW ); }
void CTechsView::OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult) { NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; // TODO: Add your control notification handler code here CTreeCtrl &treectrl = GetTreeCtrl(); HTREEITEM hItem = treectrl.GetSelectedItem(); CString strText = treectrl.GetItemText(hItem); if( NULL != hItem ) { UINT nTech = treectrl.GetItemData(hItem); if( (nTech >= STT_MIN && nTech <= STT_MAX) || nTech >= STT_USER_MIN ) { AfxGetProfile().ShowGraphViewTech( nTech ); CGraphView * pGraphView = AfxGetGraphView(); CView * pActiveView = AfxGetStaticDoc()->GetActiveView(); if( pGraphView ) pGraphView->ResetClientRect( ); if( pGraphView && pGraphView->GetSafeHwnd() == pActiveView->GetSafeHwnd() ) pGraphView->Invalidate(); else AfxSwitchToStaticView( RUNTIME_CLASS(CGraphView) ); SetFocus( ); } } *pResult = 0; }
BOOL CStkUIApp::OnDBChanged( BOOL bRecalculate ) { CWaitCursor waitcursor; // Reload DB AfxGetStockContainer().Load( &AfxGetDB(), NULL, NULL ); AfxGetDomainContainer().Load( AfxGetProfile().GetDomainFile() ); AfxGetGroupContainer().Load( AfxGetProfile().GetGroupFile() ); AfxGetDB().LoadKDataCache( AfxGetStockContainer(), NULL, NULL, 0, STKLIB_MAX_PROGRESS ); AfxGetStockContainer().OnDataChanged( ); AfxGetStkReceiver().RefreshStockContainer( AfxGetStockContainer(), TRUE ); // Reload AfxGetStockMain() AfxReloadStockMain( ); // Recalcuate Yield if( bRecalculate && IDYES == AfxMessageBox( IDS_INSTALLPAC_IFRECALCULATE, MB_YESNO|MB_ICONINFORMATION ) ) { AfxRecalculateYield( AfxGetProfile().GetYieldAverageDays(), TRUE ); AfxGetStockContainer().ReloadBase( &AfxGetDB() ); } // Update SListBar CMainFrame * pMainFrame = AfxGetMainFrame(); if( pMainFrame ) { pMainFrame->m_SearchBox.InitStocks( TRUE, TRUE, TRUE ); pMainFrame->m_SearchBox.SetCurrentWindowText( ); //pMainFrame->m_DateBox.InitDates( ); //pMainFrame->m_DateBox.SetCurrentWindowText( ); } // Update Views AfxGetSListStockContainer().ReRetrieveFromStatic( AfxGetActiveStrategy(), TRUE ); AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_SLISTVIEW, NULL ); AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_GRAPHVIEW, NULL ); AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_BASEVIEW, NULL ); AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_SIMUVIEW_REREALRUN, NULL ); AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_SELECTORVIEW, NULL ); ::PostMessage( AfxGetGroupView()->GetSafeHwnd(), WM_USER_UPDATEGROUPS, 0, 0 ); return TRUE; }
void CMultiSortView::SendRequestQuote( BOOL bForced ) { BOOL bInTrade = CSPTime::InTradeTime(CSPTime::GetCurrentTime().GetTime(),900); CView * pView = AfxGetStaticDoc()->GetActiveView(); if( bForced || (bInTrade && pView == this) ) { CStockInfo info; info.SetType( m_multisort.GetMultiSortClass( ) ); AfxGetStkReceiver().RequestStockData( CStock::dataMultisort, &info, 1, 0, 0 ); } }
CStrategy* CStkUIApp::OpenStrategyFile( LPCTSTR lpszPathName ) { // Resolve File Name TCHAR szPath[_MAX_PATH]; ASSERT(lstrlen(lpszPathName) < sizeof(szPath)); if( NULL != lpszPathName ) { TCHAR szTemp[_MAX_PATH]; if (lpszPathName[0] == '\"') ++lpszPathName; lstrcpyn(szTemp, lpszPathName, _MAX_PATH); LPTSTR lpszLast = _tcsrchr(szTemp, '\"'); if (lpszLast != NULL) *lpszLast = 0; AfxFullPath(szPath, szTemp); TCHAR szLinkName[_MAX_PATH]; if (AfxResolveShortcut(AfxGetMainWnd(), szPath, szLinkName, _MAX_PATH)) lstrcpy(szPath, szLinkName); } if( NULL != lpszPathName ) { POSITION pos = GetFirstStrategyPosition(); while (pos != NULL) { CStrategy* pStrategy = GetNextStrategy(pos); if( 0 == pStrategy->GetPathName().CompareNoCase( szPath ) ) { if( m_bAutoUpdateViews ) { ::SendMessage( AfxGetStrategyView()->GetSafeHwnd(), WM_USER_ACTIVATESTRATEGY, DWORD(pStrategy), 0 ); AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_WIZARDVIEW, NULL ); // AfxGetMainFrame()->ShowWorkspBar( ); } return pStrategy; } } } CStrategy * pStrategy = new CStrategy(); if( NULL == pStrategy ) return NULL; char szErr[256]; if( !pStrategy->OpenStrategyFile( szPath, szErr, sizeof(szErr)-1 ) ) { AfxMessageBox( szErr, MB_OK|MB_ICONINFORMATION ); delete pStrategy; return NULL; } AddStrategy( pStrategy ); return pStrategy; }
void CMultiSortView::OnTimer(UINT nIDEvent) { if( MSV_TIMER_REFRESH == nIDEvent ) { SendRequestQuote(FALSE); CView * pView = AfxGetStaticDoc()->GetActiveView(); if( pView == this ) m_multisort.RecalculateSortID( TRUE, TRUE ); } CView::OnTimer(nIDEvent); }
void CStkUIApp::RemoveStrategy(CStrategy* pStrategy) { POSITION pos = m_strategyList.Find(pStrategy); ASSERT( NULL != pos ); if( pos ) m_strategyList.RemoveAt( pos ); if( m_bAutoUpdateViews ) { ::SendMessage( AfxGetStrategyView()->GetSafeHwnd(), WM_USER_REMOVESTRATEGY, 0, 0 ); AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_WIZARDVIEW, NULL ); } }
void CStkUIApp::AddStrategy(CStrategy* pStrategy) { if( NULL == pStrategy ) return; ASSERT(m_strategyList.Find(pStrategy, NULL) == NULL); // must not be in list m_strategyList.AddTail(pStrategy); if( m_bAutoUpdateViews ) { ::SendMessage( AfxGetStrategyView()->GetSafeHwnd(), WM_USER_ADDSTRATEGY, 0, 0 ); AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_WIZARDVIEW, NULL ); // AfxGetMainFrame()->ShowWorkspBar( ); } }
void CRealTimeView::SendRequestQuote( BOOL bForced ) { BOOL bInTrade = CSPTime::InTradeTime(CSPTime::GetCurrentTime().GetTime(),900); CView * pView = AfxGetStaticDoc()->GetActiveView(); if( bForced || (bInTrade && pView == this) ) { for( int i=0; i<m_nMultiStockCount && i<RTV_MAX_MULTICOUNT; i++ ) { CStock & stock = m_realtime[i].GetCurStock( ); CStockInfo & info = stock.GetStockInfo(); if( info.IsValidStock() ) AfxGetStkReceiver().RequestStockData( CStock::dataReport, &info, 1, 0, 0 ); } } }
void CStkUIApp::CloseAllStrategy( BOOL bEndSession ) { POSITION pos = GetFirstStrategyPosition(); while (pos != NULL) { CStrategy* pStrategy = GetNextStrategy(pos); pStrategy->OnClose(); delete pStrategy; } m_strategyList.RemoveAll(); if( ! bEndSession && m_bAutoUpdateViews ) { ::SendMessage( AfxGetStrategyView()->GetSafeHwnd(), WM_USER_REMOVESTRATEGY, 0, 0 ); AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_WIZARDVIEW, NULL ); } }
// 快捷键 void AfxExecuteAccelerator( UINT nAcce ) { HWND hWnd = AfxGetMainFrame()->GetSafeHwnd(); switch( nAcce ) { case ACCE_01: // 热键F1 ::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_REPORTDETAIL, 0 ); break; case ACCE_02: // 热键F2 ::PostMessage( hWnd, WM_COMMAND, ID_VIEW_SLIST, 0 ); break; case ACCE_03: // 热键F3 ::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_VIEWSZZS, 0 ); break; case ACCE_04: // 热键F4 ::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_VIEWSZNCZ, 0 ); break; case ACCE_05: // 热键F5 { CView * pView = AfxGetStaticDoc()->GetActiveView(); if( pView && pView->IsKindOf( RUNTIME_CLASS(CGraphView) ) ) ::PostMessage( hWnd, WM_COMMAND, ID_VIEW_REALTIME, 0 ); else ::PostMessage( hWnd, WM_COMMAND, ID_VIEW_GRAPH, 0 ); } break; case ACCE_06: // 热键F6 ::PostMessage( hWnd, WM_COMMAND, ID_SLIST_GROUPSELF, 0 ); break; case ACCE_07: // 热键F7 ::PostMessage( hWnd, WM_COMMAND, ID_VIEW_MULTISORT, 0 ); break; case ACCE_08: // 热键F8 break; case ACCE_09: // 热键F9 break; case ACCE_10: // 热键F10 ::PostMessage( hWnd, WM_COMMAND, ID_VIEW_F10, 0 ); break; case ACCE_1: // 上A报价 ::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SHAA, 0 ); break; case ACCE_2: // 上B报价 ::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SHAB, 0 ); break; case ACCE_3: // 深A报价 ::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SZNA, 0 ); break; case ACCE_4: // 深B报价 ::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SZNB, 0 ); break; case ACCE_5: // 上债报价 ::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SHABOND, 0 ); break; case ACCE_6: // 深债报价 ::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SZNBOND, 0 ); break; case ACCE_61: // 上A涨跌 ::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SHAASORTDP, 0 ); break; case ACCE_62: // 上B涨跌 ::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SHABSORTDP, 0 ); break; case ACCE_63: // 深A涨跌 ::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SZNASORTDP, 0 ); break; case ACCE_64: // 深B涨跌 ::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SZNBSORTDP, 0 ); break; case ACCE_65: // 上债涨跌 ::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SHABONDSORTDP, 0 ); break; case ACCE_66: // 深债涨跌 ::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SZNBONDSORTDP, 0 ); break; case ACCE_71: // 上证信息 break; case ACCE_72: // 深证信息 break; case ACCE_73: // 券商信息 break; case ACCE_81: // 上A综合 ::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_MSSZAG, 0 ); break; case ACCE_82: // 上B综合 ::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_MSSZBG, 0 ); break; case ACCE_83: // 深A综合 ::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_MSSZNAG, 0 ); break; case ACCE_84: // 深B综合 ::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_MSSZNBG, 0 ); break; case ACCE_85: // 上债综合 ::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_MSSZZQ, 0 ); break; case ACCE_86: // 深债综合 ::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_MSSZNZQ, 0 ); break; case ACCE_LBDK: // 量比多空 ::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_LBDK, 0 ); break; case ACCE_MMLD: // 买卖力道 ::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_MMLD, 0 ); break; default: ASSERT( FALSE ); } }
void CSetBaseDlg::OnStart() { UpdateData( ); CNetDatabase netdb; if( !netdb.SetRootPath( AfxGetProfile().GetSelfDBPath(), IStStore::dbtypeSelfDB ) ) { AfxMessageBox( IDS_ROOTPATH_ERROR, MB_OK | MB_ICONINFORMATION ); return; } if( ( m_strFileF10.IsEmpty() && m_strFileTdx.IsEmpty() && m_strFileFxj.IsEmpty() && m_strPathFxjBlock.IsEmpty() ) || ( 0 != access(m_strFileF10,0) && 0 != access(m_strFileTdx,0) && 0 != access(m_strFileFxj,0) && 0 != access(m_strPathFxjBlock,0) ) ) { AfxMessageBox( IDS_SETBASE_FILENOTEXISTS, MB_OK|MB_ICONINFORMATION ); return; } m_btnStart.EnableWindow( FALSE ); AfxGetApp()->WriteProfileString( "setbasedlg", "filef10", m_strFileF10 ); AfxGetApp()->WriteProfileString( "setbasedlg", "filetdx", m_strFileTdx ); AfxGetApp()->WriteProfileString( "setbasedlg", "filefxj", m_strFileFxj ); AfxGetApp()->WriteProfileString( "setbasedlg", "pathfxjblock", m_strPathFxjBlock ); m_ctrlProgress.SetWindowPos( NULL, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOMOVE ); m_ctrlProgress.SetRange( 0, STKLIB_MAX_PROGRESS ); m_ctrlProgress.SetPos( 0 ); if( m_strFileF10.GetLength() > 0 ) { CPackage pac; pac.m_nType = CPackage::packageBasetext; pac.m_bIsZipped = ( m_strFileF10.GetLength() > 4 && 0 == m_strFileF10.Right(4).CompareNoCase(".zip") ); pac.m_strDescript = m_strFileF10; if( netdb.InstallPackageEx( pac, m_strFileF10, InstallBaseCallback, GetSafeHwnd() ) ) AfxMessageBox( IDS_SETBASE_INSTALLF10OK, MB_OK|MB_ICONINFORMATION ); else AfxMessageBox( IDS_SETBASE_INSTALLF10FAIL, MB_OK|MB_ICONINFORMATION ); } if( m_strFileTdx.GetLength() > 0 ) { CPackage pac; pac.m_nType = CPackage::packageBasetable; pac.m_bIsZipped = ( m_strFileTdx.GetLength() > 4 && 0 == m_strFileTdx.Right(4).CompareNoCase(".zip") ); pac.m_strDescript = m_strFileTdx; if( netdb.InstallPackageEx( pac, m_strFileTdx, NULL, NULL ) ) AfxMessageBox( IDS_SETBASE_INSTALLTDXOK, MB_OK|MB_ICONINFORMATION ); else AfxMessageBox( IDS_SETBASE_INSTALLTDXFAIL, MB_OK|MB_ICONINFORMATION ); } if( m_strFileFxj.GetLength() > 0 ) { CPackage pac; pac.m_nType = CPackage::packageBasetable; pac.m_bIsZipped = ( m_strFileFxj.GetLength() > 4 && 0 == m_strFileFxj.Right(4).CompareNoCase(".zip") ); pac.m_strDescript = m_strFileFxj; if( netdb.InstallPackageEx( pac, m_strFileFxj, NULL, NULL ) ) AfxMessageBox( IDS_SETBASE_INSTALLFXJOK, MB_OK|MB_ICONINFORMATION ); else AfxMessageBox( IDS_SETBASE_INSTALLFXJFAIL, MB_OK|MB_ICONINFORMATION ); } if( m_strPathFxjBlock.GetLength() > 0 ) { CPackage pac; pac.m_nType = CPackage::packageCode; pac.m_bIsZipped = ( m_strPathFxjBlock.GetLength() > 4 && 0 == m_strPathFxjBlock.Right(4).CompareNoCase(".zip") ); pac.m_strDescript = m_strPathFxjBlock; BOOL bOK = FALSE; int nFileCountTotal = CNetDatabase::GetFileCount( m_strPathFxjBlock, FALSE ); DWORD attr = GetFileAttributes( m_strPathFxjBlock ); if( 0xFFFFFFFF != attr && (attr & FILE_ATTRIBUTE_DIRECTORY) ) bOK = netdb.InstallPackagePath( pac, m_strPathFxjBlock, InstallBaseCallback, GetSafeHwnd(), nFileCountTotal, 0, FALSE ); else bOK = netdb.InstallPackage( pac, m_strPathFxjBlock, InstallBaseCallback, GetSafeHwnd() ); if( bOK ) { AfxGetDomainContainer().Store( AfxGetProfile().GetDomainFile() ); AfxMessageBox( IDS_SETBASE_INSTALLFXJBLOCKOK, MB_OK|MB_ICONINFORMATION ); } else AfxMessageBox( IDS_SETBASE_INSTALLFXJBLOCKFAIL, MB_OK|MB_ICONINFORMATION ); } m_ctrlProgress.SetPos( STKLIB_MAX_PROGRESS ); m_btnStart.EnableWindow( TRUE ); AfxGetStockContainer().ReloadBase( &AfxGetDB() ); AfxGetSListStockContainer().ReRetrieveFromStatic( AfxGetActiveStrategy() ); AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_GRAPHVIEW, NULL ); AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_BASEVIEW, NULL ); AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_SLISTVIEW, NULL ); AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_SELECTORVIEW, NULL ); }
void CSListView::SendRequestQuote( BOOL bForced ) { static int nLastStart = -1; static int nLastCount = -1; BOOL bQuoteTipSended = FALSE; BOOL bInTrade = CSPTime::InTradeTime(CSPTime::GetCurrentTime().GetTime(),900); CView * pView = AfxGetStaticDoc()->GetActiveView(); if( bForced ) { CStockContainer stocks; CStockInfo info; if( AfxGetStockContainer().GetStockInfo( STKLIB_CODE_MAIN, &info ) ) stocks.Add(info); if( AfxGetStockContainer().GetStockInfo( STKLIB_CODE_MAINSZN, &info ) ) stocks.Add(info); if( stocks.GetSize() > 0 ) AfxGetStkReceiver().RequestStockData( CStock::dataReport, stocks.GetData(), stocks.GetSize(), 0, 0 ); } if( bForced || pView == this ) { CCellRange cr = m_Grid.GetVisibleNonFixedCellRange(); int nStart = cr.GetMinRow() - 1; int nCount = cr.GetMaxRow() - cr.GetMinRow() + 1; CStockContainer & container = AfxGetSListStockContainer(); container.Lock(); if( nStart >= 0 && nCount > 0 && container.GetSize() > 0 && (bInTrade || bForced || nLastStart != nStart || nLastCount != nCount) ) { nLastStart = nStart; nLastCount = nCount; AfxGetStkReceiver().RequestStockData( CStock::dataReport, container.GetData()+nStart, min(nCount,container.GetSize()-nStart), 0, 0 ); bQuoteTipSended = (0 == nStart && nCount >= 9); } container.UnLock(); } if( bInTrade ) { // 预警系统所需股票行情刷新 CAlarmCondContainer & conds = AfxGetProfile().GetAlarmCondContainer(); CStockContainer stocks; stocks.SetSize( 0, conds.GetSize() + 5 ); for( int i=0; i<conds.GetSize(); i++ ) { ALARMCOND cond = conds.GetAt(i); CStockInfo info; if( AfxGetStockContainer().GetStockInfo( cond.m_szCode, &info ) ) stocks.Add( info ); } CStockInfo infoMain, infoMainSzn; if( AfxGetStockContainer().GetStockInfo( STKLIB_CODE_MAIN, &infoMain ) && AfxGetStockContainer().GetStockInfo( STKLIB_CODE_MAINSZN, &infoMainSzn ) ) { stocks.Add( infoMain ); stocks.Add( infoMainSzn ); } // 行情QuoteTip 需要行情数据 if( !bQuoteTipSended ) { CStockContainer & container = AfxGetSListStockContainer(); container.Lock(); for( int i=0; i<9 && i<container.GetSize(); i++ ) stocks.Add( container.ElementAt(i) ); container.UnLock(); } if( stocks.GetSize() > 0 ) AfxGetStkReceiver().RequestStockData( CStock::dataReport, stocks.GetData(), stocks.GetSize(), 0, 0 ); } }
BOOL CSearchBox::PreTranslateMessage(MSG* pMsg) { if( pMsg->message == WM_KEYDOWN ) { if( IsWantChar( pMsg->wParam ) ) { OnChangeStatus( pMsg->wParam, pMsg->lParam, TRUE ); return TRUE; } if( VK_RETURN == pMsg->wParam ) { m_bDoNothing = TRUE; m_hwndLastFocus = NULL; m_bSegmentEnd = TRUE; CString strCommand; GetWindowText( strCommand ); int nSel = SelectString( 0, strCommand ); ShowDropDown( FALSE ); SetCurSel( nSel ); // Show Graph View if( CB_ERR != nSel && m_bShowOnSel ) { DWORD dwData = GetItemData( nSel ); CView * pView = AfxGetStaticDoc()->GetActiveView(); if( dwData & SEARCHBOX_SIGNBIT_STT ) AfxShowStockTech( dwData & ~SEARCHBOX_SIGNBIT_STT ); else if( dwData & SEARCHBOX_SIGNBIT_ACCE ) AfxExecuteAccelerator( dwData & ~SEARCHBOX_SIGNBIT_ACCE ); else if( IsCTRLpressed() ) AfxShowStockBase( dwData, FALSE ); else if( pView && pView->IsKindOf( RUNTIME_CLASS(CRealTimeView) ) ) AfxShowStockRealTime( dwData, FALSE ); else AfxShowStockGraph( dwData, FALSE ); } else if( CB_ERR == nSel && m_bShowOnSel ) { AfxShowStockGraph( strCommand ); } else SetCurrentWindowText( ); m_bDoNothing = FALSE; if( m_bAutoHide ) SetWindowPos( NULL, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_HIDEWINDOW ); return TRUE; } else if( VK_ESCAPE == pMsg->wParam ) { m_bDoNothing = TRUE; if( m_hwndLastFocus ) ::SetFocus( m_hwndLastFocus ); m_hwndLastFocus = NULL; m_bSegmentEnd = TRUE; CString strCommand; GetWindowText( strCommand ); int nSel = SelectString( 0, strCommand ); ShowDropDown( FALSE ); SetCurSel( nSel ); SetCurrentWindowText( ); m_bDoNothing = FALSE; if( m_bAutoHide ) SetWindowPos( NULL, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_HIDEWINDOW ); return TRUE; } } return CComboBox::PreTranslateMessage(pMsg); }
void CSetKDataDlg::OnCompleted( ) { AfxGetSListStockContainer().ReRetrieveFromStatic( AfxGetActiveStrategy() ); AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_GRAPHVIEW, NULL ); AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_SLISTVIEW, NULL ); }