CButton* radio1 = (CButton*)GetDlgItem(ID_RADIO1);
radio1->SetCheck(1);

というようなGetDlgItemの返り値をキャストして使うのは
状況によっては動かない場合があると聞いたのですがどうなんでしょう。
入門書によく載ってますが。