2012-02-23 4 views
0

Ниже приведена часть нормального приложения win32, созданного с нуля, а не на основе диалога. он будет показывать текст на днище, а не сверху:Изменить стиль кнопки «на лету» в 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); 

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

Подклассы приемлемы. Владельцы-Рисованные кнопки неприемлемы. Спасибо, Haotian Yang

+2

Что вам нужно сделать? –

ответ

0

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

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

Edit:

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

LONG style = GetWindowLong(hBtn,GWL_STYLE); 
style = (style & ~BS_BOTTOM) | BS_TOP; 
SetWindowLong(hBtn,GWL_STYLE,style); 
+0

работает, спасибо! – user1227588

Смежные вопросы