如何使用C ++ win32 API在消息框文本中连接值?

时间:2012-10-31 05:50:15

标签: c++ windows winapi dialog

我想使用win32 API显示messsagebox ...

int pwdexpirydays=5; MessageBox(hdlg,(LPCSTR)("Your password will expire in %d days",&pwdexpirydays),(LPCSTR)"Logon Message",MB_OK | MB_ICONINFORMATION);

但我无法获得价值......

如何将pwdexpirydays值汇总到"Your password will expire in %d days"此字符串。

2 个答案:

答案 0 :(得分:3)

您可以使用snprintf或std :: string进行连接。

答案 1 :(得分:3)

如果你正在做很多事情,你可能想要考虑一个快速简便的功能。

int MsgBoxPrint(HWND hWnd, int Type, char *Caption, char *Format, ...)
{
    va_list ArgList;
    char Temp[4096];

    va_start(ArgList, Format);
    vsnprintf(Temp, 4096, Format, ArgList); 
    va_end(ArgList);

    return MessageBox(hWnd, Temp, Caption, Type);
}

然后你会这样称呼它:

MsgBoxPrint(hdlg, MB_OK | MB_ICONINFORMATION, "Logon Message", \
     "Your password will expire in %d days", pwdexpirydays);