本文整理汇总了C++中dc函数的典型用法代码示例。如果您正苦于以下问题:C++ dc函数的具体用法?C++ dc怎么用?C++ dc使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了dc函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: dc
///////////////////////////////////////////////////////////////////////////////
// OnPaint
void CXHTMLStatic::OnPaint()
{
CPaintDC dc(this); // device context for painting
// get text from control
CString strText = _T("");
GetWindowText(strText);
// replace character entity names with codes
TCHAR ent[3] = { 0 };
ent[0] = _T('\001'); // each entity name is replaced with a two-character
// code that begins with \001
for (int i = 0; m_aCharEntities[i].pszName != NULL; i++)
{
ent[1] = m_aCharEntities[i].cCode;
strText.Replace(m_aCharEntities[i].pszName, ent);
}
CString str1 = _T("");
int index = 0;
// set text and background colors
COLORREF crText = m_crText;
COLORREF prev_crText = crText;
COLORREF crBackground = m_crBackGround;
COLORREF prev_crBackground = crBackground;
CFont *pOldFont = dc.SelectObject(&m_font);
int n = strText.GetLength();
CRect rect;
GetClientRect(&rect);
//dc.FillSolidRect(&rect, m_crBackGround);
// allow for margins
rect.left += m_nLeftMargin;
rect.right -= m_nRightMargin;
int nInitialXOffset = 0;//m_nLeftMargin;
m_yStart = rect.top;
LOGFONT lf, prev_lf;
if (m_bLogFont)
{
memcpy(&lf, &m_lf, sizeof(lf));
}
else
{
CFont* cf = GetFont();
if (cf)
cf->GetObject(sizeof(lf), &lf);
else
GetObject(GetStockObject(SYSTEM_FONT), sizeof(lf), &lf);
}
memcpy(&prev_lf, &lf, sizeof(lf));
CString strAnchorText = _T("");
BOOL bSizeChange = FALSE;
//BOOL bEndOfSizeChange = FALSE;
TEXTMETRIC tm;
dc.GetTextMetrics(&tm);
while (n > 0)
{
///////////////////////////////////////////////////////////////////////
if (_tcsnicmp(strText, _T("<B>"), 3) == 0) // check for <b> or <B>
{
n -= 3;
index = strText.Find(_T('>'));
if (index != -1)
strText = strText.Mid(index+1);
m_bBold++;// = TRUE;
continue;
}
///////////////////////////////////////////////////////////////////////
else if (_tcsnicmp(strText, _T("</B>"), 4) == 0) // check for </B>
{
n -= 4;
index = strText.Find(_T('>'));
if (index != -1)
strText = strText.Mid(index+1);
if (m_bBold)
m_bBold--;// = FALSE;
continue;
}
///////////////////////////////////////////////////////////////////////
else if (_tcsnicmp(strText, _T("<I>"), 3) == 0) // check for <I>
{
n -= 3;
index = strText.Find(_T('>'));
if (index != -1)
strText = strText.Mid(index+1);
m_bItalic++;// = TRUE;
//.........这里部分代码省略.........
开发者ID:Bitfall,项目名称:AppWhirr-client,代码行数:101,代码来源:XHTMLStatic.cpp
示例2: dc
void CTimeEv::OnPaint()
{
CPaintDC dc(this); // device context for painting
GetClientRect(m_MainRect);
m_SpikesRect = m_MainRect;
m_SpikesRect.left += 11;
m_SpikesRect.top += 11;
m_SpikesRect.right -= 100; // -10
m_SpikesRect.bottom -= 219; // 179; // 209
CDC dcTemp;
CBitmap bmTemp;
bmTemp.CreateCompatibleBitmap(&dc,m_SpikesRect.right,m_SpikesRect.bottom);
dcTemp.CreateCompatibleDC(&dc);
CBitmap* bmOld = dcTemp.SelectObject(&bmTemp);
// main RECTANGLE
dcTemp.Rectangle(m_SpikesRect);
m_SpikesRect.left += 1;
m_SpikesRect.right -= 1;
m_SpikesRect.bottom -= 1;
m_SpikesRect.top += 1;
// AXIS for SCALE
int raster = m_SpikesRect.Width() / 10;
CPen rasterPen(PS_SOLID,1, RGB(230,230,230)) , rasterPenRed(PS_SOLID,1,RGB(200,0,0));
CPen *pOldRasterPen = dcTemp.SelectObject(&rasterPen);
for (int iRaster = 1; iRaster < 10; iRaster++)
{ if(iRaster==5) //paint middle line as red
{ dcTemp.SelectObject(&rasterPenRed);
dcTemp.MoveTo(m_SpikesRect.left + iRaster*raster, m_SpikesRect.top);
dcTemp.LineTo(m_SpikesRect.left + iRaster*raster, m_SpikesRect.bottom);
dcTemp.SelectObject(&rasterPen);
}
else //paint other lines as gray
{ dcTemp.MoveTo(m_SpikesRect.left + iRaster*raster, m_SpikesRect.top);
dcTemp.LineTo(m_SpikesRect.left + iRaster*raster, m_SpikesRect.bottom);
}
}
dcTemp.SelectObject(pOldRasterPen);
m_ArenaRect = m_MainRect;
m_ArenaRect.left += 280;
m_ArenaRect.bottom -= 47; // 45
m_ArenaRect.top = m_ArenaRect.bottom - 130;
m_ArenaRect.right = m_ArenaRect.left + 130;
m_ArenaRect.left += 1;
m_ArenaRect.top += 1;
m_ArenaRect.right -= 1;
m_ArenaRect.bottom -= 1;
m_RoomRect = m_MainRect;
m_RoomRect.left += 11;
m_RoomRect.bottom -= 47; //45
m_RoomRect.top = m_RoomRect.bottom - 130;
m_RoomRect.right = m_RoomRect.left + 130;
m_RoomRect.left += 1;
m_RoomRect.top += 1;
m_RoomRect.right -= 1;
m_RoomRect.bottom -= 1;
int oldBkMode = dc.SetBkMode( TRANSPARENT );
dc.TextOut(m_ArenaRect.left, m_ArenaRect.top - 10, "Arena");
dc.TextOut(m_RoomRect.left, m_RoomRect.top - 10, "Room");
dc.TextOut(m_MainRect.right - 227, m_MainRect.bottom - 207, "Time window [ms]");
dc.TextOut(m_MainRect.right - 167, m_MainRect.bottom - 137, "PlaySpeed");
dc.SetBkMode( oldBkMode );
unsigned char checked = 0;
char params;
unsigned char spikesCh, eegCh;
CRect signalRect = m_SpikesRect;
float oneWinY = 0.0f;
if(mPrepareFlag)
checked = GetParameters( & spikesCh, & eegCh );
if (checked)
{
oneWinY = m_SpikesRect.Height() / ( spikesCh + eegCh );
dc.Ellipse(m_ArenaRect);
dc.Ellipse(m_RoomRect);
// Arena win
if ( (m_MainDataStack->InBpfExist & 1) || (m_MainDataStack->LoadedAdd & 1) )
{
params = 2; // iixxxooo, xxx - points/circles/vectors, ooo - arena/room
params += 8 * m_wndCmbArena.GetCurSel();
m_MainDataStack->m_MainSyncStack.DrawArenaRoom(&dc,m_ArenaRect, timeStampFirst + 10*startTime, timeWindow, params, &clView[0], m_MainDataStack->whichDraw);
}
// Room win
if ( (m_MainDataStack->InBpfExist & 2) || (m_MainDataStack->LoadedAdd & 2) )
{
params = 4; // iixxxooo, xxx - points/circles/vectors, ooo - arena/room
params += 8 * m_wndCmbRoom.GetCurSel();
m_MainDataStack->m_MainSyncStack.DrawArenaRoom(&dc,m_RoomRect, timeStampFirst + 10*startTime, timeWindow, params, &clView[0], m_MainDataStack->whichDraw);
//.........这里部分代码省略.........
开发者ID:FentonLab,项目名称:WClust_src,代码行数:101,代码来源:TimeEv.cpp
示例3: dc
void CSHeaderCtrl::OnPaint()
{
CPaintDC dc(this);
CMemDC memDC(&dc);
DrawCtrl(&memDC);
}
开发者ID:killbug2004,项目名称:cosps,代码行数:6,代码来源:SHeaderCtrl.cpp
示例4: dc
//重画函数
void CPalatesNeck::OnPaint()
{
CPaintDC dc(this);
dc.SelectObject(&m_Font);
dc.SetBkMode(TRANSPARENT);
dc.SetTextColor(RGB(255,255,255));
// dc.SelectObject(&CGameImageLink::m_HFont);
CGameImageHelper ImageHandle(&m_BackBmp);
ImageHandle.BitBlt(dc,0,0,ImageHandle.GetWidth(),ImageHandle.GetHeight(),0,0);
dc.SetTextColor(RGB(0,0,0));
dc.TextOut(81,120,"用户名",lstrlen("用户名"));
dc.TextOut(80,121,"用户名",lstrlen("用户名"));
dc.SetTextColor(RGB(255,255,255));
dc.TextOut(80,120,"用户名",lstrlen("用户名"));
dc.SetTextColor(RGB(0,0,0));
dc.TextOut(221,120,"成绩",lstrlen("成绩"));
dc.TextOut(220,121,"成绩",lstrlen("成绩"));
dc.SetTextColor(RGB(255,255,255));
dc.TextOut(220,120,"成绩",lstrlen("成绩"));
//显示经验值
int dJianGe=160/m_bGamePeople;
int iStation=0;
TCHAR szBuffer[30];
memset(szBuffer,0,sizeof(szBuffer));
for (BYTE i=0;i<m_bGamePeople;i++)
{
if (m_strName[i].IsEmpty()==false)
{
dc.SetTextColor(RGB(0,0,0));
dc.TextOut(81,(int)(iStation*dJianGe+140),m_strName[i]);
dc.TextOut(80,(int)(iStation*dJianGe+141),m_strName[i]);
dc.SetTextColor(RGB(255,255,255));
dc.TextOut(80,(int)(iStation*dJianGe+140),m_strName[i]);
wsprintf(szBuffer,TEXT("%ld"),m_dwPoint[i]);
dc.SetTextColor(RGB(0,0,0));
dc.TextOut(221,(int)(iStation*dJianGe+140),szBuffer,lstrlen(szBuffer));
dc.TextOut(220,(int)(iStation*dJianGe+141),szBuffer,lstrlen(szBuffer));
dc.SetTextColor(RGB(255,255,255));
dc.TextOut(220,(int)(iStation*dJianGe+140),szBuffer,lstrlen(szBuffer));
iStation++;
}
}
//显示税收
if ((m_bShowTax==true)&&(iStation>0))
{
dc.SetTextColor(RGB(0,0,0));
dc.TextOut(81,(int)(iStation*dJianGe+140),TEXT("交易税"),lstrlen(TEXT("交易税")));
dc.TextOut(80,(int)(iStation*dJianGe+141),TEXT("交易税"),lstrlen(TEXT("交易税")));
dc.SetTextColor(RGB(255,255,255));
dc.TextOut(80,(int)(iStation*dJianGe+140),TEXT("交易税"),lstrlen(TEXT("交易税")));
wsprintf(szBuffer,"%ld",m_dwGameTax);
dc.SetTextColor(RGB(0,0,0));
dc.TextOut(221,(int)(iStation*dJianGe+140),szBuffer,lstrlen(szBuffer));
dc.TextOut(220,(int)(iStation*dJianGe+141),szBuffer,lstrlen(szBuffer));
dc.SetTextColor(RGB(255,255,255));
dc.TextOut(220,(int)(iStation*dJianGe+140),szBuffer,lstrlen(szBuffer));
}
return;
}
开发者ID:lincoln56,项目名称:robinerp,代码行数:68,代码来源:GameEndView.cpp
示例5: dc
void CSplashScreenEx::OnPaint()
{
CPaintDC dc(this); // device context for painting
DrawWindow(&dc);
}
开发者ID:YOlodfssdf,项目名称:evolution3d,代码行数:5,代码来源:SplashScreenEx.cpp
示例6: dc
void CNCaptureView::ClientToDoc(CRect* pRect)
{
CWindowDC dc(m_hWnd);
PrepareDC(dc.m_hDC);
dc.DPtoLP((LPPOINT)pRect, 2);
}
开发者ID:moon-sky,项目名称:fishjam-template-library,代码行数:6,代码来源:nCaptureView.cpp
示例7: dc
void IW::CRender::DrawFocusRect(LPCRECT lpRect)
{
IW::CDCRender dc(*this);
dc.DrawFocusRect(lpRect);
}
开发者ID:ZacWalk,项目名称:ImageWalker,代码行数:5,代码来源:Render.cpp
示例8: GetSelectedItem
HBRUSH CXTPPropertyPageTabNavigator::GetPageBrush(CDC* pDC, CXTPPropertyPage* pPage)
{
COLORREF clrClient = COLORREF_NULL;
if (GetPaintManager()->GetColor() == xtpTabColorWinNative)
{
clrClient = COLOR_WINXP;
}
else
{
CXTPTabManagerItem* pItem = GetSelectedItem();
if (!pItem)
return NULL;
clrClient = GetPaintManager()->GetColorSet()->GetItemColor(pItem);
}
if (m_clrBrush != clrClient)
{
m_brushPage.DeleteObject();
m_clrBrush = clrClient;
}
if (m_brushPage.GetSafeHandle())
return m_brushPage;
if (m_clrBrush == GetXtremeColor(COLOR_3DFACE))
return 0;
if (m_clrBrush != COLOR_WINXP)
{
m_brushPage.CreateSolidBrush(m_clrBrush);
return m_brushPage;
}
if (m_brushPage.GetSafeHandle() == 0)
{
CXTPClientRect rc(pPage);
if (rc.IsRectEmpty())
return 0;
CXTPWinThemeWrapper wrapper;
wrapper.OpenTheme(0, L"TAB");
if (!wrapper.IsAppThemed())
return 0;
CBitmap bmp;
bmp.CreateCompatibleBitmap(pDC, rc.Width(), rc.Height());
{
CRect rectContent(0, 0, 0, 0);
if (FAILED(wrapper.GetThemeBackgroundContentRect(pDC->GetSafeHdc(), TABP_PANE, 0, rc, rectContent)))
{
rectContent = rc;
rectContent.DeflateRect(2, 2, 4, 4);
}
CRect rcPane(-rectContent.left, -rectContent.top, rc.right + (rc.right - rectContent.right),
rc.bottom + (rc.bottom - rectContent.bottom));
CXTPCompatibleDC dc(pDC, bmp);
wrapper.DrawThemeBackground(dc, TABP_PANE, 0, rcPane, 0);
}
m_brushPage.Attach( ::CreatePatternBrush(bmp));
}
return m_brushPage;
}
开发者ID:lai3d,项目名称:ThisIsASoftRenderer,代码行数:70,代码来源:XTPPropertyPageNavigator.cpp
示例9: dc
void CSizingControlBar::OnPaint()
{
// overridden to skip border painting based on clientrect
CPaintDC dc(this);
}
开发者ID:nykma,项目名称:ykt4sungard,代码行数:5,代码来源:sizecbar.cpp
示例10: GetMinNotMinimisedSize
wxSize wxRibbonPanel::DoGetNextLargerSize(wxOrientation direction,
wxSize relative_to) const
{
if(m_expanded_panel != NULL)
{
// Next size depends upon children, who are currently in the
// expanded panel
return m_expanded_panel->DoGetNextLargerSize(direction, relative_to);
}
if(IsMinimised(relative_to))
{
wxSize current = relative_to;
wxSize min_size = GetMinNotMinimisedSize();
switch(direction)
{
case wxHORIZONTAL:
if(min_size.x > current.x && min_size.y == current.y)
return min_size;
break;
case wxVERTICAL:
if(min_size.x == current.x && min_size.y > current.y)
return min_size;
break;
case wxBOTH:
if(min_size.x > current.x && min_size.y > current.y)
return min_size;
break;
default:
break;
}
}
if(m_art != NULL)
{
wxClientDC dc((wxRibbonPanel*) this);
wxSize child_relative = m_art->GetPanelClientSize(dc, this, relative_to, NULL);
wxSize larger(-1, -1);
if(GetSizer())
{
// We could just let the sizer expand in flow direction but see comment
// in IsSizingContinuous()
larger = GetPanelSizerBestSize();
// and adjust for page in non flow direction
if(m_art->GetFlags() & wxRIBBON_BAR_FLOW_VERTICAL)
{
if(larger.x != child_relative.x)
larger.x = child_relative.x;
}
else if(larger.y != child_relative.y)
{
larger.y = child_relative.y;
}
}
else if(GetChildren().GetCount() == 1)
{
// Simple (and common) case of single ribbon child
wxWindow* child = GetChildren().Item(0)->GetData();
wxRibbonControl* ribbon_child = wxDynamicCast(child, wxRibbonControl);
if(ribbon_child != NULL)
{
larger = ribbon_child->GetNextLargerSize(direction, child_relative);
}
}
if(larger.IsFullySpecified()) // Use fallback if !(sizer/child = 1)
{
if(larger == child_relative)
{
return relative_to;
}
else
{
return m_art->GetPanelSize(dc, this, larger, NULL);
}
}
}
// Fallback: Increase by 25% (equal to a prior or subsequent 20% decrease)
// Note that due to rounding errors, this increase may not exactly equal a
// matching decrease - an ideal solution would not have these errors, but
// avoiding them is non-trivial unless an increase is by 100% rather than
// a fractional amount. This would then be non-ideal as the resizes happen
// at very large intervals.
wxSize current(relative_to);
if(direction & wxHORIZONTAL)
{
current.x = (current.x * 5 + 3) / 4;
}
if(direction & wxVERTICAL)
{
current.y = (current.y * 5 + 3) / 4;
}
return current;
}
开发者ID:iokto,项目名称:newton-dynamics,代码行数:96,代码来源:panel.cpp
示例11: dc
wxSize wxRibbonPanel::DoGetNextSmallerSize(wxOrientation direction,
wxSize relative_to) const
{
if(m_expanded_panel != NULL)
{
// Next size depends upon children, who are currently in the
// expanded panel
return m_expanded_panel->DoGetNextSmallerSize(direction, relative_to);
}
if(m_art != NULL)
{
wxClientDC dc((wxRibbonPanel*) this);
wxSize child_relative = m_art->GetPanelClientSize(dc, this, relative_to, NULL);
wxSize smaller(-1, -1);
bool minimise = false;
if(GetSizer())
{
// Get smallest non minimised size
smaller = GetMinSize();
// and adjust to child_relative for parent page
if(m_art->GetFlags() & wxRIBBON_BAR_FLOW_VERTICAL)
{
minimise = (child_relative.y <= smaller.y);
if(smaller.x < child_relative.x)
smaller.x = child_relative.x;
}
else
{
minimise = (child_relative.x <= smaller.x);
if(smaller.y < child_relative.y)
smaller.y = child_relative.y;
}
}
else if(GetChildren().GetCount() == 1)
{
// Simple (and common) case of single ribbon child or Sizer
wxWindow* child = GetChildren().Item(0)->GetData();
wxRibbonControl* ribbon_child = wxDynamicCast(child, wxRibbonControl);
if(ribbon_child != NULL)
{
smaller = ribbon_child->GetNextSmallerSize(direction, child_relative);
minimise = (smaller == child_relative);
}
}
if(minimise)
{
if(CanAutoMinimise())
{
wxSize minimised = m_minimised_size;
switch(direction)
{
case wxHORIZONTAL:
minimised.SetHeight(relative_to.GetHeight());
break;
case wxVERTICAL:
minimised.SetWidth(relative_to.GetWidth());
break;
default:
break;
}
return minimised;
}
else
{
return relative_to;
}
}
else if(smaller.IsFullySpecified()) // Use fallback if !(sizer/child = 1)
{
return m_art->GetPanelSize(dc, this, smaller, NULL);
}
}
// Fallback: Decrease by 20% (or minimum size, whichever larger)
wxSize current(relative_to);
wxSize minimum(GetMinSize());
if(direction & wxHORIZONTAL)
{
current.x = (current.x * 4) / 5;
if(current.x < minimum.x)
{
current.x = minimum.x;
}
}
if(direction & wxVERTICAL)
{
current.y = (current.y * 4) / 5;
if(current.y < minimum.y)
{
current.y = minimum.y;
}
}
return current;
}
开发者ID:iokto,项目名称:newton-dynamics,代码行数:97,代码来源:panel.cpp
示例12: dc
void cef_dark_aero_window::UpdateMenuBar()
{
cef_buffered_dc dc(this);
DrawMenuBar(dc);
}
开发者ID:adobe,项目名称:brackets-shell,代码行数:5,代码来源:cef_dark_aero_window.cpp
示例13: dcPaint
void CChildView::OnPaint()
{
CPaintDC dcPaint( this );
CExtPaintManager::stat_ExcludeChildAreas(
dcPaint.GetSafeHdc(),
GetSafeHwnd()
);
CExtMemoryDC dc( &dcPaint );
CGdiObject * pOld0, * pOld1;
CExtWndShadow _shadow;
WORD _PatternBits0[8],_PatternBits1[8];
for( INT iPatternLine=0; iPatternLine < 8; iPatternLine++ )
{
_PatternBits0[iPatternLine] =
( iPatternLine & 1 )
? WORD(0xFFFF)
: WORD( ~ ( 5<<iPatternLine ) )
;
_PatternBits1[iPatternLine] =
( iPatternLine & 1 )
? WORD(0xFFFF)
: WORD( ~ ( 1<<(8-iPatternLine) ) )
;
}
CBitmap bmpPattern0,bmpPattern1;
CBrush brPattern0,brPattern1;
VERIFY( bmpPattern0.CreateBitmap(8,8,1,1,_PatternBits0) );
VERIFY( bmpPattern1.CreateBitmap(8,8,1,1,_PatternBits1) );
VERIFY( brPattern0.CreatePatternBrush(&bmpPattern0) );
VERIFY( brPattern1.CreatePatternBrush(&bmpPattern1) );
CRect rcPattern0(10,10,180,150), rcPattern1(40,30,80,200);
dc.FillRect(rcPattern0,&brPattern0);
_shadow.Paint(
dc, rcPattern0, CRect(0,0,0,0), CRect(0,0,0,0),
CExtWndShadow::DEF_SHADOW_SIZE,
CExtWndShadow::DEF_BRIGHTNESS_MIN, CExtWndShadow::DEF_BRIGHTNESS_MAX,
false
);
pOld0 = dc.SelectStockObject( NULL_BRUSH );
pOld1 = dc.SelectStockObject( BLACK_PEN );
dc.Rectangle( rcPattern0 );
if( pOld0 != NULL )
dc.SelectObject( pOld0 );
if( pOld1 != NULL )
dc.SelectObject( pOld1 );
dc.FillRect(rcPattern1,&brPattern1);
_shadow.Paint(
dc, rcPattern1, CRect(0,0,0,0), CRect(0,0,0,0),
CExtWndShadow::DEF_SHADOW_SIZE,
CExtWndShadow::DEF_BRIGHTNESS_MIN, CExtWndShadow::DEF_BRIGHTNESS_MAX,
false
);
pOld0 = dc.SelectStockObject( NULL_BRUSH );
pOld1 = dc.SelectStockObject( BLACK_PEN );
dc.Rectangle( rcPattern1 );
if( pOld0 != NULL )
dc.SelectObject( pOld0 );
if( pOld1 != NULL )
dc.SelectObject( pOld1 );
CRect rc0(20,50,160,80);
CRect rc1(160,50,210,80);
CRect rc2(rc0.left,rc0.top,rc1.right,rc1.bottom);
COLORREF clrLeft = RGB(0,255,0);
COLORREF clrMiddle = RGB(255,255,0);
COLORREF clrRight = RGB(255,0,0);
CExtPaintManager::stat_PaintGradientRect(
dc, rc0, clrLeft, clrMiddle );
CExtPaintManager::stat_PaintGradientRect(
dc, rc1, clrMiddle,clrRight );
_shadow.Paint(
dc, rc2, CRect(0,0,0,0), CRect(0,0,0,0),
CExtWndShadow::DEF_SHADOW_SIZE,
CExtWndShadow::DEF_BRIGHTNESS_MIN, CExtWndShadow::DEF_BRIGHTNESS_MAX,
false
);
pOld0 = dc.SelectStockObject( NULL_BRUSH );
pOld1 = dc.SelectStockObject( BLACK_PEN );
dc.Rectangle(rc2);
if( pOld0 != NULL )
dc.SelectObject( pOld0 );
if( pOld1 != NULL )
dc.SelectObject( pOld1 );
CRect rc3(120,40,150,80);
CRect rc4(120,80,150,160);
CRect rc5(rc3.left,rc3.top,rc4.right,rc4.bottom);
COLORREF clrUpper = RGB(255,0,255);
COLORREF clrMiddleV = RGB(255,255,255);
COLORREF clrLower = RGB(0,0,255);
CExtPaintManager::stat_PaintGradientRect(
dc, rc3, clrMiddleV, clrUpper, TRUE );
CExtPaintManager::stat_PaintGradientRect(
dc, rc4, clrLower, clrMiddleV, TRUE );
_shadow.Paint(
//.........这里部分代码省略.........
开发者ID:ngphloc,项目名称:agmagic,代码行数:101,代码来源:ChildView.cpp
示例14: dc
void CHandGestureRecognitionSystemDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
// set area
int static_height = image_interval * 1;
int static_width = image_interval * 20;
MoveWindow(image_interval,
image_interval,
image_width * 2 + 4 * image_interval,
image_height * 2 + 11 * image_interval);
GetDlgItem(IDC_STATIC_CAMERA)->MoveWindow(
image_interval * 1 + (image_width - static_width) / 2,
image_interval * 1,
static_width,
static_height);
GetDlgItem(IDC_STATIC_CAMERA)->ModifyStyle(SS_LEFT|SS_RIGHT,SS_CENTER,TRUE);
GetDlgItem(IDC_IMAGE_CAMERA)->MoveWindow(
image_interval * 1,
image_interval * 3,
image_width,
image_height);
GetDlgItem(IDC_STATIC_SEGMENT)->MoveWindow(
image_interval * 1 + image_width + (image_width - static_width) / 2,
image_interval * 1,
static_width,
static_height);
GetDlgItem(IDC_STATIC_SEGMENT)->ModifyStyle(SS_LEFT|SS_RIGHT,SS_CENTER,TRUE);
GetDlgItem(IDC_IMAGE_SEGMENT)->MoveWindow(
image_interval * 2 + image_width,
image_interval * 3,
image_width,
image_height);
GetDlgItem(IDC_STATIC_FEATURE)->MoveWindow(
image_interval * 1 + (image_width - static_width) / 2,
image_interval * 4 + image_height,
static_width,
static_height);
GetDlgItem(IDC_STATIC_FEATURE)->ModifyStyle(SS_LEFT|SS_RIGHT,SS_CENTER,TRUE);
GetDlgItem(IDC_IMAGE_FEATURE)->MoveWindow(
image_interval * 1,
image_interval * 6 + image_height,
image_width,
image_height);
GetDlgItem(IDC_STATIC_RECOGNITION)->MoveWindow(
image_interval * 1 + image_width + (image_width - static_width) / 2,
image_interval * 4 + image_height,
static_width,
static_height);
GetDlgItem(IDC_STATIC_RECOGNITION)->ModifyStyle(SS_LEFT|SS_RIGHT,SS_CENTER,TRUE);
GetDlgItem(IDC_IMAGE_RECOGNITION)->MoveWindow(
image_interval * 2 + image_width,
image_interval * 6 + image_height,
image_width,
image_height);
GetDlgItem(IDC_BUTTON_PLAY_CAMERA)->MoveWindow(
image_interval * 1,
image_interval * 7 + image_height * 2,
image_interval * 5,
image_interval);
GetDlgItem(IDC_BUTTON_STOP_CAMERA)->MoveWindow
(image_interval * 7,
image_interval * 7 + image_height * 2,
image_interval * 5,
image_interval);
GetDlgItem(IDC_BUTTON_REFRESH_BACKGROUND)->MoveWindow(
image_interval * 13,
image_interval * 7 + image_height * 2,
image_interval * 5,
image_interval);
GetDlgItem(ID_CLOSE)->MoveWindow(
image_interval * 28,
image_interval * 7 + image_height * 2,
image_interval * 5,
image_interval);
// set font
CFont testfont;
testfont.CreatePointFont(110, "微软雅黑");
GetDlgItem(IDC_STATIC_CAMERA)->SetFont(&testfont);
GetDlgItem(IDC_STATIC_SEGMENT)->SetFont(&testfont);
GetDlgItem(IDC_STATIC_FEATURE)->SetFont(&testfont);
//.........这里部分代码省略.........
开发者ID:chenxilinsidney,项目名称:HandGestureRecognitionSystem,代码行数:101,代码来源:HandGestureRecognitionSystemDlg.cpp
示例15: dc
//重画函数
void CControlWnd::OnPaint()
{
CPaintDC dc(this);
//获取位置
CRect rcClient;
GetClientRect(&rcClient);
//创建缓冲
CDC BufferDC;
CBitmap BufferImage;
BufferDC.CreateCompatibleDC(&dc);
BufferImage.CreateCompatibleBitmap(&dc,rcClient.Width(),rcClient.Height());
BufferDC.SelectObject(&BufferImage);
//加载资源
CImageHandle HandleControlTop(&m_ImageControlTop);
CImageHandle HandleControlMid(&m_ImageControlMid);
CImageHandle HandleControlButtom(&m_ImageControlButtom);
CImageHandle HandleActionExplain(&m_ImageActionExplain);
//绘画背景
m_ImageControlTop.BitBlt(BufferDC,0,0);
for (int nImageYPos=m_ImageControlTop.GetHeight();nImageYPos<rcClient.Height();nImageYPos+=m_ImageControlMid.GetHeight())
{
m_ImageControlMid.BitBlt(BufferDC,0,nImageYPos);
}
m_ImageControlButtom.BitBlt(BufferDC,0,rcClient.Height()-m_ImageControlButtom.GetHeight());
//变量定义
int nYPos=5;
BYTE cbCurrentItem=0;
BYTE cbExcursion[3]={0,1,2};
BYTE cbItemKind[4]={WIK_LEFT,WIK_CENTER,WIK_RIGHT,WIK_PENG};
//绘画扑克
for (BYTE i=0;i<CountArray(cbItemKind);i++)
{
if ((m_cbActionMask&cbItemKind[i])!=0)
{
//绘画扑克
for (BYTE j=0;j<3;j++)
{
BYTE cbCardData=m_cbCenterCard;
if (i<CountArray(cbExcursion))
cbCardData=m_cbCenterCard+j-cbExcursion[i];
g_CardResource.m_ImageTableBottom.DrawCardItem(&BufferDC,cbCardData,j*26+12,nYPos+5);
}
//计算位置
int nXImagePos=0;
int nItemWidth=m_ImageActionExplain.GetWidth()/7;
if ((m_cbActionMask&cbItemKind[i])&WIK_PENG)
nXImagePos=nItemWidth;
//绘画标志
int nItemHeight=m_ImageActionExplain.GetHeight();
m_ImageActionExplain.BitBlt(BufferDC,126,nYPos+5,nItemWidth,nItemHeight,nXImagePos,0);
//绘画边框
if (cbCurrentItem==m_cbCurrentItem)
{
BufferDC.Draw3dRect(7,nYPos,rcClient.Width()-14,ITEM_HEIGHT,RGB(255,255,0),RGB(255,255,0));
}
//设置变量
++cbCurrentItem;
nYPos+=ITEM_HEIGHT;
}
}
//杠牌扑克
for (BYTE i=0;i<CountArray(m_cbGangCard);i++)
{
if (m_cbGangCard[i]!=0)
{
//绘画扑克
for (BYTE j=0;j<4;j++)
{
g_CardResource.m_ImageTableBottom.DrawCardItem(&BufferDC,m_cbGangCard[i],j*26+12,nYPos+5);
}
//绘画边框
if (cbCurrentItem==m_cbCurrentItem)
{
BufferDC.Draw3dRect(7,nYPos,rcClient.Width()-14,ITEM_HEIGHT,RGB(255,255,0),RGB(255,255,0));
}
//绘画标志
int nItemWidth=m_ImageActionExplain.GetWidth()/7;
int nItemHeight=m_ImageActionExplain.GetHeight();
m_ImageActionExplain.BitBlt(BufferDC,126,nYPos+5,nItemWidth,nItemHeight,nItemWidth*3,0);
//设置变量
cbCurrentItem++;
nYPos+=ITEM_HEIGHT;
}
else
break;
//.........这里部分代码省略.........
开发者ID:Michael-Z,项目名称:qipai-game,代码行数:101,代码来源:ControlWnd.cpp
示例16: dc
void CDockButton::OnPaint()
{
CPaintDC dc(this); // device context for painting
CBrush cb;
COLORREF m_clrBorder=GuiDrawLayer::GetRGBColorShadow(GuiDrawLayer::m_Style);
COLORREF m_clrFace=GuiDrawLayer::GetRGBColorFace(GuiDrawLayer::m_Style);
CPen cp(PS_SOLID,1,m_clrFace);
CPen* cpold=dc.SelectObject(&cp);
CRect m_rect;
GetClientRect(m_rect);
cb.CreateSolidBrush(m_clrFace);
if (GuiDrawLayer::m_Style== GUISTYLE_XP)
dc.FillRect(m_rect,&cb);
else
{
CGradient M(CSize(m_rect.Width(),m_rect.Height()));
if (m_nDockBarAling ==AFX_IDW_DOCKBAR_LEFT || m_nDockBarAling ==AFX_IDW_DOCKBAR_RIGHT)
M.PrepareCaptionVert(&dc,GuiDrawLayer::m_Style);
else
M.PrepareCaption(&dc,GuiDrawLayer::m_Style);
M.Draw(&dc,m_rect.left,m_rect.top,0,0,m_rect.Width(),m_rect.Height(),SRCCOPY);
}
dc.Draw3dRect(m_rect,m_clrBorder,m_clrBorder);
GuiDrawLayer::DrawIcon(&dc,CPoint(m_rect.left+2,m_rect.top+2),m_szBtn,m_hIcon);
switch(m_nDockBarAling)
{
case AFX_IDW_DOCKBAR_TOP:
dc.MoveTo(m_rect.left,m_rect.top);
dc.LineTo(m_rect.right,m_rect.top);
if(m_hIcon != NULL)
m_rect.left+=m_szBtn.cx+4;
DrawTextHorz(&dc,m_rect);
break;
case AFX_IDW_DOCKBAR_LEFT:
dc.MoveTo(m_rect.left,m_rect.top);
dc.LineTo(m_rect.left,m_rect.bottom);
if(m_hIcon != NULL)
m_rect.top+=m_szBtn.cy+4;
DrawTextVert(&dc,m_rect);
break;
case AFX_IDW_DOCKBAR_RIGHT:
dc.MoveTo(m_rect.right-1,m_rect.top);
dc.LineTo(m_rect.right-1,m_rect.bottom);
if(m_hIcon != NULL)
m_rect.top+=m_szBtn.cy+4;
DrawTextVert(&dc,m_rect);
break;
case AFX_IDW_DOCKBAR_BOTTOM:
dc.MoveTo(m_rect.left,m_rect.bottom-1);
dc.LineTo(m_rect.right,m_rect.bottom-1);
if(m_hIcon != NULL)
m_rect.left+=m_szBtn.cx+4;
DrawTextHorz(&dc,m_rect);
break;
}
dc.SelectObject(cpold);
}
开发者ID:ZhaoboMeng,项目名称:k-line-print,代码行数:62,代码来源:GuiDockToolBarEx.cpp
示例17: new_bmp_sz
void wxVideoTerminal::DrawTexts()
{
wxSize bmp_sz;
if (mp_bitmap)
bmp_sz = mp_bitmap->GetSize();
// Calculate bitmap size according the viewport
wxSize new_bmp_sz(m_screen_size.GetWidth() * m_font_size.GetWidth(),
wxMax(m_screen_size.GetHeight(),m_viewport.GetHeight()) * m_font_size.GetHeight() );
if (bmp_sz != new_bmp_sz)
{
if (mp_bitmap)
delete mp_bitmap;
mp_bitmap = new wxBitmap(new_bmp_sz.GetWidth(), new_bmp_sz.GetHeight(), 24);
if ( mp_bitmap )
{
m_redraw_bitmap = true;
bmp_sz = new_bmp_sz;
wxMemoryDC dc(*mp_bitmap);
dc.SetBackground(brushes[0]);
dc.Clear();
}
}
if (!mp_bitmap) return;
wxMemoryDC dc(*mp_bitmap);
dc.SetFont( m_console_font );
TCharAttr old_attr, attr;
int j = m_scrollpos_row;
int virtual_y = -1;
{
int scroll_gap = m_topscreen_row - m_scrollpos_row;
virtual_y = m_screen_cur.y + scroll_gap;
}
wxPoint pt_sel_begin, pt_sel_end;
if (m_isSelecting) {
bool swap = false;
if (m_ptBeginSelect.y == m_ptEndSelect.y) {
if (m_ptBeginSelect.x > m_ptEndSelect.x) swap = true;
} else if (m_ptBeginSelect.y > m_ptEndSelect.y)
swap = true;
if (swap) {
pt_sel_begin = m_ptEndSelect;
pt_sel_end = m_ptBeginSelect;
} else {
pt_sel_begin = m_ptBeginSelect;
pt_sel_end = m_ptEndSelect;
}
}
int y;
for (y=0; y < m_viewport.GetHeight() && j < m_botscreen_row; ++y, ++j)
{
wxTermLine &term_line = m_lines[j];
// dirty if its line where cursor staying
if (y == virtual_y || m_redraw_bitmap) term_line.dirty = true;
if (m_isSelecting && pt_sel_begin.y <= j && pt_sel_end.y >= j) term_line.dirty = true;
if (!term_line.dirty) continue;
term_line.dirty = false;
old_attr.value = 0;
dc.SetBrush( brushes[0] );
dc.SetPen( pens[0] );
dc.DrawRectangle(0,y*m_font_size.GetHeight(),
bmp_sz.GetWidth(), m_font_size.GetHeight() );
const int w = m_font_size.GetWidth();
const int h = m_font_size.GetHeight();
int x;
int x2 = 0;
int x1 = term_line.width;
if (m_isSelecting && pt_sel_begin.y <= j && pt_sel_end.y >= j) {
x2 = term_line.width;
x1 = 0;
if (j == pt_sel_begin.y)
x1 = pt_sel_begin.x;
if (j == pt_sel_end.y ) {
if (pt_sel_end.x <= term_line.visible_width)
x2 = pt_sel_end.x;
}
}
for (x=0; x < m_screen_size.GetWidth(); ++x)
{
//.........这里部分代码省略.........
开发者ID:firodj,项目名称:alumetro-wx,代码行数:101,代码来源:VideoTerminal.cpp
示例18: dc
// WaveformViewDialog message handlers
void WaveformViewDialog::OnPaint() {
BufferredPaintDC dc(this);
CRect rectTitle;
GetDlgItem(IDC_PLACE_CAPTION)->GetWindowRect(&rectTitle);
ScreenToClient(&rectTitle);
dc.FillSolidRect(rectTitle, RGB(54, 133, 214));
CRect waveformRect;
GetDlgItem(IDC_PLACE_WAVEFORM)->GetWindowRect(&waveformRect);
ScreenToClient(&waveformRect);
dc.FillSolidRect(waveformRect, RGB(0, 0, 0));
CFont *oldFont = dc.SelectObject(GuiResources::GetInstance()->GetFont(GuiResources::FONT_NORMAL));
dc.SetTextColor(RGB(255, 255, 255));
dc.SetBkMode(TRANSPARENT);
CSize textSize = dc.GetTextExtent(_T("88888"));
waveformRect.left += textSize.cx + 8;
if (monitor_ != NULL && cashIndex_ != -1) {
int cashCount = monitor_->Freeze();
if (cashIndex_ < cashCount) {
Cash *cash = monitor_->GetCash(cashIndex_);
CPen penYellow(PS_SOLID, 1, RGB(255, 255, 0));
CPen penGreen(PS_SOLID, 1, RGB(0, 255, 0));
int count = cash->GetADCSampleCount(g_ADCChannels[channel_].id);
if (count > 0) {
CString title;
title.Format(_T("%s - %s"), (LPCTSTR)CA2T(cash->GetSN()), g_ADCChannels[channel_].name);
labelTitle_.SetWindowText(title);
const short *codes = cash->GetADCSampleCodes(g_ADCChannels[channel_].id);
const short *values = cash->GetADCSampleValues(g_ADCChannels[channel_].id);
// draw scaler
__int64 sum = 0;
short minValue = SHORT_MAX, maxValue = SHORT_MIN;
for (int i = 0; i < count; i++) {
if (values[i] < minValue) {
minValue = values[i];
}
if (values[i] > maxValue) {
maxValue = values[i];
}
sum += values[i];
}
CPen whitePen(PS_SOLID, 1, RGB(255, 255, 255));
CPen *oldPen = dc.SelectObject(&whitePen);
dc.MoveTo(waveformRect.left, waveformRect.top);
dc.LineTo(waveformRect.left, waveformRect.bottom);
int height = waveformRect.Height();
int range = g_ADCChannels[channel_].maxValue - g_ADCChannels[channel_].minValue;
// min
CString label;
int x = waveformRect.left - textSize.cx - 8;
int y = waveformRect.bottom - (minValue - g_ADCChannels[channel_].minValue) * height / range;
dc.MoveTo(waveformRect.left - 4, y);
dc.LineTo(waveformRect.right, y);
label.Format(_T("%d"), minValue);
dc.TextOut(x, y - textSize.cy / 2, label);
// center
short median = (short)(sum / count);
y = waveformRect.bottom - (median - g_ADCChannels[channel_].minValue) * height / range;
dc.MoveTo(waveformRect.left - 4, y);
dc.LineTo(waveformRect.right, y);
label.Format(_T("%d"), median);
dc.TextOut(x, y - textSize.cy / 2, label);
// max
y = waveformRect.bottom - (maxValue - g_ADCChannels[channel_].minValue) * height / range;
dc.MoveTo(waveformRect.left - 4, y);
dc.LineTo(waveformRect.right, y);
label.Format(_T("%d"), maxValue);
dc.TextOut(x, y - textSize.cy / 2, label);
dc.SelectObject(oldPen);
::DrawWaveform(&dc, waveformRect, codes, codes[0], codes[count - 1], count, &penYellow);
::DrawWaveform(&dc, waveformRect, values,
g_ADCChannels[channel_].minValue,
g_ADCChannels[channel_].maxValue, count, &penGreen);
}
}
monitor_->Unfreeze();
}
dc.SelectObject(oldFont);
}
开发者ID:ranjiewwen,项目名称:produce-management-sofaware,代码行数:89,代码来源:waveform_view_dialog.cpp
示例19: dc
void COpenCVInterfaceDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
//In variabila r1 pastrez dimensiunile ferestrei picture1
CRect r1;
GetClientRect(&r1);
int w,h;
if(mainImage.cols)
{
//aleg minimul dintre dimensiunile imag si ale ferestrei de afisare
if(mainImage.cols<r1.Width()) w=mainImage.cols;
else w=r1.Width();
if(mainImage.rows<r1.Height()) h=mainImage.rows;
else h=r1.Height();
//creez un dreptunghi cu dimensiunile minime si il umplu cu peria imagine
CRect r(0,0,w-1,h-1);
dc.FillRect(r,ImageBrush);
CMenu* mmenu =GetMenu();
CMenu* submenu =mmenu->GetSubMenu(1);
UINT state = submenu->GetMenuState(ID_TOOLS_GRAYLEVELROW,MF_BYCOMMAND);
UINT state1 = submenu->GetMenuState(ID_TOOLS_GRAYLEVELCOLUMN,MF_BYCOMMAND);
ASSERT(state != 0xFFFFFFFF);
ASSERT(state1 != 0xFFFFFFFF);
if(state & MF_CHECKED)
{
if(gr->GetY()<mainImage.rows)
{
gr->setGCheck(true);
CPen *pen = new CPen(PS_SOLID,1,RGB(255,0,0));
CPen *oldPen;
oldPen=(CPen*)dc.SelectObject(pen);
dc.MoveTo(0,gr->GetY());
dc.LineTo(mainImage.cols,gr->GetY());
dc.SelectObject(oldPen);
delete pen;
}
}
else
{
if(state1 & MF_CHECKED)
{
gr->setGCheck(false);
if(gr->GetX()<mainImage.cols)
{
CPen *pen = new CPen(PS_SOLID,1,RGB(255,0,0));
CPen *oldPen;
oldPen=(CPen*)dc.SelectObject(pen);
dc.MoveTo(gr->GetX(),0);
dc.LineTo(gr->GetX(),mainImage.rows);
dc.SelectObject(oldPen);
delete pen;
}
}
}
}
}
开发者ID:alduleacristi,项目名称:proiect-procesare-imagini,代码行数:62,代码来源:OpenCVInterfaceDlg.cpp
示例20: GetDocument
void CEx_DrawView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CEx_DrawDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
m_ptLocalScroll = GetScrollPosition();
CPoint ptLocal = point + m_ptLocalScroll;
m_
|
请发表评论