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]));
    }
}

ボタンのキャプションを動的に変更したい。

「statictxt」のような静的テキストでSetWindowTextWを使用すると、うまく機能します。

ただし、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」が含まれ、2番目のボタンには「1」が含まれます。

于 2013-03-25T16:29:05.643 に答える