原創|使用教程|編輯:郝浩|2013-04-10 15:28:10.000|閱讀 1257 次
概述:本文為大家展示用工控圖表控件ProEssentials創建的一個比較簡單的Scientific Graph Control(科學圖表控件)。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Scientific Graph Control類似于Graph控件,但它是以水平和垂直的雙坐標軸來展示信息的。這個組件通常用于表現技術類型的信息,比如電子部件當前的電壓與電流的關系。下面為大家展示用工控圖表控件ProEssentials創建的一個比較簡單的Scientific Graph Control,如下圖:
Scientific Graph能處理各種格式化的date/time值,ProEssentials date/time能處理世紀到秒的時間。
void CPEView::CreateSimpleSGraph() { //! Right button click to show popup menu. // //! Double Click to show customization dialog. // //! Left-Click and drag to draw zoom box. Use popup memu or 'z' to undo zoom. // // Simple example show the basics of a scientific graph object. // // Scientific Graph's contain both YData and XData and thus data // is not plotted equally spaced as the graph object does. RECT rect; GetClientRect( &rect ); m_hPE = PEcreate(PECONTROL_SGRAPH, WS_VISIBLE, &rect, m_hWnd, 1001); if( m_hPE ) { float fY; float fX; // Enable middle mouse dragging // PEnset(m_hPE, PEP_bMOUSEDRAGGINGX, TRUE); PEnset(m_hPE, PEP_bMOUSEDRAGGINGY, TRUE); // Enable Bar Glass Effect // PEnset(m_hPE, PEP_bBARGLASSEFFECT, TRUE); // Enable Plotting style gradient and bevel features // PEnset(m_hPE, PEP_nAREAGRADIENTSTYLE, PEPGS_RADIAL_BOTTOM_RIGHT); PEnset(m_hPE, PEP_nAREABEVELSTYLE, PEBS_MEDIUM_SMOOTH); PEnset(m_hPE, PEP_nSPLINEGRADIENTSTYLE, PEPGS_RADIAL_BOTTOM_RIGHT); PEnset(m_hPE, PEP_nSPLINEBEVELSTYLE, PESBS_MEDIUM_SMOOTH); // Set number of Subsets and Points // PEnset(m_hPE, PEP_nSUBSETS, 4); PEnset(m_hPE, PEP_nPOINTS, 12); for( int s=0; s<=3; s++ ) { for( int p=0; p<=11; p++ ) { fX = ((float) (p+1)) * 100.0F + ((float) GetRandom(2, 250)) / 50.0F; PEvsetcellEx (m_hPE, PEP_faXDATA, s, p, &fX); fY = ((float) (p+1) * 1.0F) + GetRandom(1, 250) + 700.0F - ((float) (s * 140.0F)) + ((float) GetRandom(2, 250)) / 250.0F; PEvsetcellEx (m_hPE, PEP_faYDATA, s, p, &fY); } } // Set DataShadows to show shadows PEnset(m_hPE, PEP_nDATASHADOWS, PEDS_SHADOWS); PEszset(m_hPE, PEP_szMAINTITLE, TEXT("Example Data")); PEszset(m_hPE, PEP_szSUBTITLE, TEXT("")); // no subtitle PEszset(m_hPE, PEP_szYAXISLABEL, TEXT("Units Sold")); PEszset(m_hPE, PEP_szXAXISLABEL, TEXT("Month")); PEnset(m_hPE, PEP_bFOCALRECT, FALSE); PEnset(m_hPE, PEP_bPREPAREIMAGES, TRUE); PEnset(m_hPE, PEP_bCACHEBMP, TRUE); PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_SPLINE); PEnset(m_hPE, PEP_nGRIDLINECONTROL, PEGLC_BOTH); PEnset(m_hPE, PEP_nGRIDSTYLE, PEGS_DOT); PEnset(m_hPE, PEP_nALLOWZOOMING, PEAZ_HORZANDVERT); PEnset(m_hPE, PEP_nZOOMSTYLE, PEZS_RO2_NOT); // subset labels PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 0, TEXT("Texas")); PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 1, TEXT("Florida" )); PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 2, TEXT("Washington" )); PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 3, TEXT("California" )); // subset colors DWORD dwArray[4] = { PERGB(128,198,0,0), PERGB(128, 0, 198, 198 ), PERGB(128, 198,198,0 ), PERGB(128, 0,198,0 ) }; PEvsetEx( m_hPE, PEP_dwaSUBSETCOLORS, 0, 4, dwArray, 0 ); // subset line types int nLineTypes[] = { PELT_MEDIUMSOLID, PELT_MEDIUMSOLID, PELT_MEDIUMSOLID, PELT_MEDIUMSOLID }; PEvset(m_hPE, PEP_naSUBSETLINETYPES, nLineTypes, 4); // subset point types int nPointTypes[] = { PEPT_DOTSOLID, PEPT_UPTRIANGLESOLID, PEPT_SQUARESOLID, PEPT_DOWNTRIANGLESOLID }; PEvset(m_hPE, PEP_naSUBSETPOINTTYPES, nPointTypes, 4); // Version 4.0 Features // PEnset(m_hPE, PEP_bFIXEDFONTS, TRUE); PEnset(m_hPE, PEP_bSIMPLEPOINTLEGEND, TRUE); PEnset(m_hPE, PEP_bSIMPLELINELEGEND, TRUE); PEnset(m_hPE, PEP_nLEGENDSTYLE, PELS_1_LINE); PEnset(m_hPE, PEP_nMULTIAXISSTYLE, PEMAS_SEPARATE_AXES); // Set Various Other Properties // PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE); PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_MEDIUM_NO_BORDER); PEnset(m_hPE, PEP_nGRADIENTBARS, 8); PEnset(m_hPE, PEP_nTEXTSHADOWS, PETS_BOLD_TEXT); PEnset(m_hPE, PEP_bMAINTITLEBOLD, TRUE); PEnset(m_hPE, PEP_bSUBTITLEBOLD, TRUE); PEnset(m_hPE, PEP_bLABELBOLD, TRUE); PEnset(m_hPE, PEP_bLINESHADOWS, TRUE); PEnset(m_hPE, PEP_nFONTSIZE, PEFS_LARGE); PEnset(m_hPE, PEP_bSCROLLINGHORZZOOM, TRUE); PEnset(m_hPE, PEP_nDATAPRECISION, 1); // Improves metafile export // PEnset(m_hPE, PEP_nDPIX, 600); PEnset(m_hPE, PEP_nDPIY, 600); // Set Demo's RenderEngine to Gdi Plus // CMDIFrameWnd* pWnd = (CMDIFrameWnd*) AfxGetApp()->GetMainWnd(); pWnd->SendMessage(WM_CHANGE_METAFILE, PEPLAYMETAFILEGDIPLUS ); } } //***************************************************************************
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件