Изменить стиль кнопки на лету в Win32 - PullRequest
0 голосов
/ 23 февраля 2012

Ниже приведена часть рабочего нормального приложения win32, созданного с нуля, а не на основе диалогов.он будет отображать текст в нижней части, а не сверху:

hButtonApply = CreateWindow(
    "BUTTON",
    "Reset",
    WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | BS_BOTTOM,
    95, 130, 120, 40, 
    hWnd, (HMENU)IDC_BUTTON_RESET, hInstance, NULL);
SendMessage(hButtonApply, BM_SETSTYLE, BS_TOP, TRUE);

, однако это делает его переключателем:

SendMessage(hButtonApply, BM_SETSTYLE, BS_RADIOBUTTON, TRUE);

то же самое для определяемого ресурсом элемента управления диалогового окна.

Подклассы приемлемы.Кнопки, нарисованные владельцем, не принимаются.Спасибо, Хаотянь Ян

1 Ответ

0 голосов
/ 23 февраля 2012

Некоторые стили окна могут быть установлены только во время CreateWindow, я думаю, это может быть один из них.

Вы пробовали SetWindowLong?

Редактировать:

Это похоже на работу:

LONG style = GetWindowLong(hBtn,GWL_STYLE);
style = (style & ~BS_BOTTOM) | BS_TOP;
SetWindowLong(hBtn,GWL_STYLE,style);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...