// 很完整的在对话框上绘制矩形的格式
void ScaleSetDlg::OnPaint()
{
CPaintDC dc(this);
CPen penBorder(PS_SOLID,1,RGB(255,255,255));
CPen *ppenOld = dc.SelectObject(&penBorder);
CBrush brPoint(m_color);
CBrush* pbrOld = dc.SelectObject(&brPoint);
dc.Rectangle(180,55,240,85);
dc.SelectObject(ppenOld);
dc.SelectObject(pbrOld);
}
// 很完整的在对话框上 贴图(Bitmap格式)
CBitmap maskbmp,logbmp;
maskbmp.LoadBitmap(IDB_LOGMASK);
logbmp.LoadBitmap(IDB_LOG);
CDC MaskDC,memDC;
MaskDC.CreateCompatibleDC(pDc);
MaskDC.SelectObject(&maskbmp);
memDC.CreateCompatibleDC(pDc);
memDC.SelectObject(&logbmp);
// 不知道为什么要两个同时弄,可能是需要混合原来的颜色
pDc->BitBlt(m_ptMiddle.x - 25 ,ptMiddle.y - nRidius * 0.7,96,96,&MaskDC,0,0,SRCAND);
pDc->BitBlt(m_ptMiddle.x - 25,ptMiddle.y - nRidius * 0.7,96,96,&memDC,0,0,MERGEPAINT);
// 精确的求出 刻度的位置
CPoint CClockScale::ComputerFacePoint(UINT min, int nFaceLength)
{
CPoint ptCalc;
//将分钟转换为角度数 , 这段核心的代码看不懂
double fDegrees = 180+((15+min)%60)*6;
void ScaleSetDlg::OnPaint()
{
CPaintDC dc(this);
CPen penBorder(PS_SOLID,1,RGB(255,255,255));
CPen *ppenOld = dc.SelectObject(&penBorder);
CBrush brPoint(m_color);
CBrush* pbrOld = dc.SelectObject(&brPoint);
dc.Rectangle(180,55,240,85);
dc.SelectObject(ppenOld);
dc.SelectObject(pbrOld);
}
// 很完整的在对话框上 贴图(Bitmap格式)
CBitmap maskbmp,logbmp;
maskbmp.LoadBitmap(IDB_LOGMASK);
logbmp.LoadBitmap(IDB_LOG);
CDC MaskDC,memDC;
MaskDC.CreateCompatibleDC(pDc);
MaskDC.SelectObject(&maskbmp);
memDC.CreateCompatibleDC(pDc);
memDC.SelectObject(&logbmp);
// 不知道为什么要两个同时弄,可能是需要混合原来的颜色
pDc->BitBlt(m_ptMiddle.x - 25 ,ptMiddle.y - nRidius * 0.7,96,96,&MaskDC,0,0,SRCAND);
pDc->BitBlt(m_ptMiddle.x - 25,ptMiddle.y - nRidius * 0.7,96,96,&memDC,0,0,MERGEPAINT);
// 精确的求出 刻度的位置
CPoint CClockScale::ComputerFacePoint(UINT min, int nFaceLength)
{
CPoint ptCalc;
//将分钟转换为角度数 , 这段核心的代码看不懂
double fDegrees = 180+((15+min)%60)*6;