Подскажите, пожалуйста, почему не меняется текст кнопки? Код (Text): #include <windows.h> #include <tchar.h> #include "resource.h" HWND hDlg; void Run() { SetDlgItemText(hDlg, IDC_BTN_APPLY, "lolnoob"); } BOOL CALLBACK MainDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_BTN_APPLY: Run(); //SetDlgItemText(hDlg, IDC_BTN_APPLY, "lolnoob"); break; case IDOK: case IDCANCEL: EndDialog(hDlg, 0); return TRUE; } break; } return FALSE; } int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR lpCmd, int nShow) { DialogBox(hInst, _T("MAINDLG"), 0, MainDlgProc); return 0; } Если ф-ю SetDlgItemText() выполнить непосредственно в процедуре диалогового окна, то всё проходит на ура. Если попробовать перенести её в отдельную ф-ю и вызывать уже оттуда - текст не меняется.
Код (Text): ... HWND g_hDlg; void Run() { SetDlgItemText(g_hDlg, IDC_BTN_APPLY, "lolnoob"); } BOOL CALLBACK MainDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_INITDIALOG: g_hDlg = hDlg; return TRUE; ...