{{notification.text}}

MirGames

Прохожий
06.12.06 19:48
0
Я хочу создать свой собственный объект вида "Кнопка". У него будут
поля:
1. координата
2. размер
3. окно, которому эта кнопка принадлежит.
4. контекст, на котором он будет рисоваться.

и методы (помимо конструктора-деструктора)
1. обработка нажания мышью.

Как правильно написать для такого бъекта перехват оконного сообщения WM_LBUTTONDOWN (я правильно выражаюсь?)
#1
аксакал
06.12.06 21:49
0
Если используешь стандартный ClassName = Button, то перехват всех сообщений посылаемых кнопке реализуется заменой её стандартной функции WndProc при помощи SetWindowLong :)
#2
Прохожий
06.12.06 22:10
0
Цитата(XProger @ 6.12.2006 - 17:49) [snapback]43774[/snapback]

Если используешь стандартный ClassName = Button, то перехват всех сообщений посылаемых кнопке реализуется заменой её стандартной функции WndProc при помощи SetWindowLong :)



а я вот как раз хочу свой собственный класс написать. потому и спрашиваю
#3
Прохожий
07.12.06 20:29
0
Хочу создать окно:

Style := CS_HREDRAW or CS_VREDRAW or CS_OWNDC;
lpfnWndProc := FMainAction;
hInstance := h_Inst;
hCursor := LoadCursor(0, IDC_ARROW);
lpszClassName := ButtonName;

RegisterClass(MyWindowClass);

dwstyle := WS_CHILD;
dwexstyle := WS_EX_APPWINDOW;
ShowCursor(false);

Result := CreateWindowEx(dwexstyle, ButtonName, ButtonName, dwstyle, 0, 0, Width, Height, ParentHandle, 0, h_Inst, nil);

Окно не создается, result = 0. В чем ошибка?
#{{post.Index}}
{{post.Author.Login}}
{{post.CreatedDate | date:'dd.MM.yy HH:mm'}}
{{post.VotesRating}}
Отредактировано: {{post.UpdatedDate | date:'dd.MM.yy HH:mm'}}