本文整理汇总了C++中ocpnDC::DrawRectangle方法的典型用法代码示例。如果您正苦于以下问题:C++ ocpnDC::DrawRectangle方法的具体用法?C++ ocpnDC::DrawRectangle怎么用?C++ ocpnDC::DrawRectangle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ocpnDC
的用法示例。
在下文中一共展示了ocpnDC::DrawRectangle方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Paint
void Piano::Paint( int y, ocpnDC& dc, wxDC *shapeDC )
{
if(shapeDC) {
shapeDC->SetBackground( *wxBLACK_BRUSH);
shapeDC->SetBrush( *wxWHITE_BRUSH);
shapeDC->SetPen( *wxWHITE_PEN);
shapeDC->Clear();
}
ocpnStyle::Style* style = g_StyleManager->GetCurrentStyle();
if(!style->chartStatusWindowTransparent) {
dc.SetPen( *wxTRANSPARENT_PEN );
dc.SetBrush( m_backBrush );
dc.DrawRectangle( 0, y, cc1->GetClientSize().x, GetHeight() );
}
// Create the Piano Keys
int nKeys = m_key_array.GetCount();
wxPen ppPen( GetGlobalColor( _T("CHBLK") ), 1, wxPENSTYLE_SOLID );
dc.SetPen( ppPen );
for( int i = 0; i < nKeys; i++ ) {
int key_db_index = m_key_array.Item( i );
if( -1 == key_db_index ) continue;
bool selected = InArray(m_active_index_array, key_db_index);
if( ChartData->GetDBChartType( key_db_index ) == CHART_TYPE_CM93 ||
ChartData->GetDBChartType( key_db_index ) == CHART_TYPE_CM93COMP ) {
if(selected)
dc.SetBrush( m_scBrush );
else
dc.SetBrush( m_cBrush );
} else if( ChartData->GetDBChartFamily( key_db_index ) == CHART_FAMILY_VECTOR ) {
if(selected)
dc.SetBrush( m_svBrush );
else
dc.SetBrush( m_vBrush );
} else { // Raster Chart
if(selected)
dc.SetBrush( m_slBrush );
else
dc.SetBrush( m_tBrush );
}
#if 0
// Check to see if this box appears in the sub_light array
// If so, add a crosshatch pattern to the brush
if(InArray(m_eclipsed_index_array, key_db_index)) {
wxBrush ebrush( dc.GetBrush().GetColour(), wxCROSSDIAG_HATCH );
dc.SetBrush(ebrush);
}
#endif
if(m_bBusy)
dc.SetBrush( m_uvBrush );
wxRect box = KeyRect.Item( i );
box.y += y;
if( m_brounded ) {
dc.DrawRoundedRectangle( box.x, box.y, box.width, box.height, 4 );
if(shapeDC)
shapeDC->DrawRoundedRectangle( box.x, box.y, box.width, box.height, 4 );
} else {
dc.DrawRectangle( box.x, box.y, box.width, box.height );
if(shapeDC)
shapeDC->DrawRectangle( box );
}
if(InArray(m_eclipsed_index_array, key_db_index)) {
dc.SetBrush( m_backBrush );
int w = 3;
dc.DrawRoundedRectangle( box.x + w, box.y + w, box.width - ( 2 * w ),
box.height - ( 2 * w ), 3 );
}
// Look in the current noshow array for this index
if(InArray(m_noshow_index_array, key_db_index) &&
m_pInVizIconBmp && m_pInVizIconBmp->IsOk() )
dc.DrawBitmap(ConvertTo24Bit( dc.GetBrush().GetColour(), *m_pInVizIconBmp ),
box.x + 4, box.y + 3, false );
// Look in the current skew array for this index
if(InArray(m_skew_index_array, key_db_index) &&
m_pSkewIconBmp && m_pSkewIconBmp->IsOk())
dc.DrawBitmap(ConvertTo24Bit( dc.GetBrush().GetColour(), *m_pSkewIconBmp ),
box.x + box.width - m_pSkewIconBmp->GetWidth() - 4, box.y + 2, false );
// Look in the current tmerc array for this index
if(InArray(m_tmerc_index_array, key_db_index) &&
m_pTmercIconBmp && m_pTmercIconBmp->IsOk() )
dc.DrawBitmap(ConvertTo24Bit( dc.GetBrush().GetColour(), *m_pTmercIconBmp ),
box.x + box.width - m_pTmercIconBmp->GetWidth() - 4, box.y + 2, false );
// Look in the current poly array for this index
if(InArray(m_poly_index_array, key_db_index) &&
//.........这里部分代码省略.........