WxWidgets DrawText在屏幕上打印变量

时间:2013-10-14 21:23:11

标签: c++ wxwidgets

我正在尝试在C ++中使用wxWidgets来使用DrawText为我的游戏绘制一个“游戏结束”字符串,并显示结束游戏分数,这是一个int变量。

这是我的代码:

void CFunction::Draw(wxDC &dc)
{
    if (mGame != NULL && mGame->IsGameOver())
    {

        wxFont font(75, wxFONTFAMILY_SWISS, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false);
        dc.SetFont(font);
        dc.SetTextForeground(wxColour(221, 34, 34));
        dc.DrawText(L"GAME OVER!", 250, 100);
    }
}

现在打印“GAME OVER!”但是我希望它打印存储在mGame-> GetScore()中的变量,例如,如果在游戏结束时得分为10,它应该显示在屏幕上:

“GAME OVER!得分:10”

任何人都知道如何使用wxDraw在wxWidgets中执行此操作?

1 个答案:

答案 0 :(得分:1)

我明白了:

if ( mGame != NULL && mGame->IsGameOver() )
{
    wstringstream str;
    str << L"GAME OVER! YOUR SCORE: "  << mGame->GetScore() << ends;

    wxFont font(45, wxFONTFAMILY_SWISS, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false);
    dc.SetFont(font);
    dc.SetTextForeground(wxColour(255, 102, 0));
    dc.DrawText(str.str().c_str(), 300, 200);
}

你必须使用wstringstream,并使用它来显然传递你的变量。