Как из стиля окна типа LONG получить стиль СЛОВАМИ?
От: Аноним  
Дата: 28.07.05 11:52
Оценка:
Т.е. создаю кнопку

...
HWND hdl = CreateWindow(WC_BUTTON,"",
WS_CHILD | WS_VISIBLE | BS_NOTIFY| WS_TABSTOP| WS_BORDER,x,y,sx,sy,hparent,(HMENU)333,
GetModuleHandle(NULL),this);
...
У нее, после создания, считываю стиль Spy'ем -> 5081400
В WinUser.h читаю

WS_CHILDWINDOW 0x40000000L
WS_VISIBLE 0x10000000L
WS_BORDER 0x00800000L
WS_TABSTOP 0x00010000L
BS_PUSHBUTTON 0x00000000L
BS_TEXT 0x00000000L
BS_NOTIFY 0x00004000L
Действительно 5081400, но как теперь разобрать стиль (5081400) и получить стили кнопки отдельно?
Re: Как из стиля окна типа LONG получить стиль СЛОВАМИ?
От: SkyKnight Швейцария https://github.com/dmitrigrigoriev/
Дата: 28.07.05 12:01
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Действительно 5081400, но как теперь разобрать стиль (5081400) и получить стили кнопки отдельно?

сразу решение в лоб.
у LONG длина известная, пробегаешь по всем битам, и считываешь. Если бит установлен проставляешь в свою строку соотв. строковое значение.
github.com/dmitrigrigoriev/
Re: Как из стиля окна типа LONG получить стиль СЛОВАМИ?
От: BuHHunyx Беларусь  
Дата: 28.07.05 12:56
Оценка:
Здравствуйте, <Аноним>, Вы писали:


А>У нее, после создания, считываю стиль Spy'ем -> 5081400


У Spy++ в свойствах окна закладка Styles
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[2]: Как из стиля окна типа LONG получить стиль СЛОВАМИ?
От: kero Россия  
Дата: 28.07.05 14:25
Оценка:
Здравствуйте, BuHHunyx, Вы писали:

BHH>Здравствуйте, <Аноним>, Вы писали:



А>>У нее, после создания, считываю стиль Spy'ем -> 5081400


BHH>У Spy++ в свойствах окна закладка Styles


А поизучать "вручную" разложение/комбинирование стилей очень позволяют инструменты вроде
WinSpy++ (http://www.catch22.org.uk/software/zips/WinSpy.zip)
или ResHacker с Control Editor внутри (http://www.users.on.net/johnson/resourcehacker/reshack.zip).
Правда, WinSpy++ иногда подвирает... зато на catch22.org лежат и исходники
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re: Как из стиля окна типа LONG получить стиль СЛОВАМИ?
От: maximilian Украина  
Дата: 29.07.05 07:05
Оценка:
Здравствуйте, Аноним, Вы писали:

А>WS_CHILDWINDOW 0x40000000L

А>WS_VISIBLE 0x10000000L
А>WS_BORDER 0x00800000L
А>WS_TABSTOP 0x00010000L
А>BS_PUSHBUTTON 0x00000000L
А>BS_TEXT 0x00000000L
А>BS_NOTIFY 0x00004000L
А>Действительно 5081400, но как теперь разобрать стиль (5081400) и получить стили кнопки отдельно?

Например так:

DWORD dwStyles = GetWindowLong(hdl, GWL_STYLE);

if (dwStyle & WS_CHILDWINDOW == WS_CHILIDWINDOW)
    // установлен WS_CHILDWINDOW, делаем что-то...

if (dwStyle & WS_VISIBLE == WS_VISIBLE)
    // установлен WS_VISIBLE, делаем еще что-то...
...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.