SetWindowText() はダメで SendMessage(WM_SETTEXT) は OK な件

あるウィンドウのテキストを変えたい場合、

SetWindowText(hWnd, TEXT("ほげほげ"));

とするのが王道なんだけど、なぜかこれではダメで

SendMessage(hWnd, WM_SETTEXT, 0, (LPARAM)TEXT("ほげほげ"));

だとうまくいく罠。