hwnd_button2=CreateWindow([COLOR="SeaGreen"]"button"[/COLOR],"выход",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
150,10,100,20,
hwnd, (HMENU) 1,
((LPCREATESTRUCT) lParam)->hInstance, NULL);
Как создать класс окна управления?
Код:
А чем, собственно, RegisterClass не подходит?
Можно создать окно любого класса (обычно #32770), а потом назначить свою оконную процедуру через SetWindowLong();
Только вряд ли целесообразно в стандартных ситуациях пользоваться нестандартными средствами.
Так что следует сначала прояснить, является ли ситуация стандартной, и если нет, то в чем именно это проявляется.
Приведине какой нибудь пример.
Код:
ZeroMemory(@wc, sizeof(wc));
wc.style := CS_DBLCLKS;
wc.lpfnWndProc := @MyWndProc;//Адрес оконой процедуры
wc.hInstance := hInstance;
wc.hIcon := LoadIcon(hInstance, 'APP_ICON');
wc.hCursor := LoadCursor(0, IDC_ARROW);
wc.hbrBackground := COLOR_WINDOW + 1;
wc.lpszClassName := '[COLOR="Blue"]MyWndClass[/COLOR]';
RegisterClass(wc);
Wnd := CreateWindow('[COLOR="Blue"]MyWndClass[/COLOR]', ...
wc.style := CS_DBLCLKS;
wc.lpfnWndProc := @MyWndProc;//Адрес оконой процедуры
wc.hInstance := hInstance;
wc.hIcon := LoadIcon(hInstance, 'APP_ICON');
wc.hCursor := LoadCursor(0, IDC_ARROW);
wc.hbrBackground := COLOR_WINDOW + 1;
wc.lpszClassName := '[COLOR="Blue"]MyWndClass[/COLOR]';
RegisterClass(wc);
Wnd := CreateWindow('[COLOR="Blue"]MyWndClass[/COLOR]', ...
Через SetWindowLong
Код:
Wnd := CreateWindow('#32770', ...
SetWindowLong(wnd, GWL_WNDPROC, Integer(@MyWndProc));//устанавливаем адрес оконой процедуры
SetWindowLong(wnd, GWL_WNDPROC, Integer(@MyWndProc));//устанавливаем адрес оконой процедуры
Возникает новый вопрос.
Как в своем классе создать флаги стиля, типа BS_PUSHBUTTON - стиля класса button?
Стиль окна это 32-х разрядное число, старшие 16 одинаковые для окон всех классов и начинаются с WS_..., а младшие 16, каждый класс трактует по своему.
Если я вас правильно понял то возможно, то создайте окно класса 'Button' но без стиля WS_CHILD - получите кнопку с заголовком, если добавить WS_POPUP - то "Плавающую кнопку" кнопку...