3
int firstButton = IDC_BUTTON1;  

for(int i = firstButton; i < firstButton + 16; ++i)
{
    CWnd *pB = GetDlgItem(i);

    for(int j = 0; j < 16; ++j)
    {

        pB->SetWindowTextW((LPCTSTR)(szTest[j]));
    }
}

我想动态更改按钮标题。

当在 SetWindowTextW 中使用像“static txt”这样的静态文本时,它运行良好,

但使用 char 数组(在本例中为 szTest),标题不会更改

我编码了错误的类型转换吗?

4

1 回答 1

7

您代码中的内部 for 循环对我来说没有意义。你可能想要这个:

char szTest[] = "0123456789ABCDEF" ;

int firstButton = IDC_BUTTON1;  

for (int i = firstButton; i < firstButton + 16; ++i)
{
    CWnd *pB = GetDlgItem(i);
    CString str(szTest[i]) ;
    pB->SetWindowText(str);
}

使用那段代码,第一个按钮将包含“0”,第二个将包含“1”等。

于 2013-03-25T16:29:05.643 回答