我对使用 MFC 和 VC++ 本身有点陌生,但我将其作为课程的一部分,我必须坚持使用 VC++。
http://www.cprogramming.com/tutorial/game_programming/same_game_part1.html
这是我一直在遵循的制作简单相同游戏的教程。但是,当我尝试显示分数时,分数会显示在我的应用程序窗口下方或外部,即使我在调用 updateWindow() 之前已经显示了分数。我尝试了各种方法,但我有点迷失在这里。
这是我用来显示分数的代码:
void CSameGameView::updateScore()
{
CSameGameDoc* pDoc = GetDocument();
CRect rcClient, rcWindow;
GetClientRect(&rcClient);
GetParentFrame()->GetWindowRect(&rcWindow);
int nHeightDiff = rcWindow.Height() - rcClient.Height();
rcScore.top=rcWindow.top + pDoc->GetHeight() * pDoc->GetRows() + nHeightDiff;
rcScore.left=rcWindow.left + 50;
rcScore.right=rcWindow.left + pDoc->GetWidth() - 50;
rcScore.bottom=rcScore.top + 20;
CString str;
double points = Score::getScore();
str.Format(_T("Score: %0.2f"), points);
HDC hDC=CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL);
COLORREF clr = pDoc->GetBoardSpace(-1, -1); //this return background colour
pDC->FillSolidRect(&rcScore, clr);
DrawText(hDC, (LPCTSTR) str, -1, (LPRECT) &rcScore, DT_CENTER);
}
感谢您的帮助,如果问题没有意义或模棱两可,我很抱歉。