非客户区自绘

void CMainFrame::OnNcPaint()
{
 // TODO: 在此处添加消息处理程序代码
 // 不为绘图消息调用
 CFrameWnd::OnNcPaint();
 myDrawCaption(this);         
}

//得分榜
void CMainFrame::myDrawCaption(CWnd* pWnd)
{
 CDC* pWinDC = pWnd->GetWindowDC();

 CRect rtWnd, rtTitle, rtScore;
 pWnd->GetWindowRect(&rtWnd);
 //标题栏大小
 rtTitle.left = GetSystemMetrics(SM_CXFRAME);
 rtTitle.top = GetSystemMetrics(SM_CYFRAME);
 rtTitle.right = rtWnd.right - rtWnd.left - GetSystemMetrics(SM_CXFRAME);
 rtTitle.bottom = rtTitle.top + GetSystemMetrics(SM_CYSIZE) ;
 //得分栏大小
 rtScore.left = rtTitle.right - 75;
 rtScore.top = rtTitle.top + GetSystemMetrics(SM_CYCAPTION)+4;
 rtScore.right = rtTitle.right - 4;
 rtScore.bottom = rtTitle.bottom + GetSystemMetrics(SM_CYCAPTION);

 //写入得分
 CString strScore ;
 CFreecellView* pwt = (CFreecellView*)GetActiveView();
 int j = pwt->FreecellGame->m_RestNum;
 if  (j<1 || j>52)
  j = 0;
 strScore.Format("剩余纸牌:%#2d", j);
 CFont fntZdy, *pfntOld;
 VERIFY(fntZdy.CreatePointFont(100, "宋体", pWinDC));
 pfntOld = pWinDC->SelectObject(&fntZdy);
 pWinDC->DrawText(strScore, &rtScore, DT_CENTER);
 pWinDC->SelectObject(pfntOld);
 fntZdy.DeleteObject();
}


void CMainFrame::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
 CFrameWnd::OnActivate(nState, pWndOther, bMinimized);

 myDrawCaption(this);
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值