Re: Оконная процедура кнопки
|
От: |
Ed.ward
|
|
| Дата: | 11.11.04 19:46 |
|
Оценка: |
|
Здравствуйте, Hyboid, Вы писали:
H>Хочу сделать кнопке собственную процедуру обработки сообщений (WM_LBUTTONDOWN). Подскажите пожалуйста, почему не работает код:
H>[code]
H>static LRESULT CALLBACK ButtProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
H>{
H> HDC dc;
H> HBRUSH brush;
H> RECT rect;
H> PAINTSTRUCT ps;
H> switch (message)
H> {
H> case WM_ERASEBKGND:
H> dc = GetDC(hWnd);
H> brush = (HBRUSH)GetStockObject(BLACK_BRUSH);
H> brush = (HBRUSH)SelectObject(dc, brush);
H> GetClientRect(hWnd, &rect);
H> FillRect(dc, &rect, 0);
H> SelectObject(dc, brush);
H> ReleaseDC(hWnd, dc);
H> return 1;
H> break;
H> case WM_PAINT:
H> dc = BeginPaint(hWnd, &ps);
H> brush = (HBRUSH)COLOR_BTNFACE+1;
H> brush = (HBRUSH)SelectObject(dc, brush);
H> GetClientRect(hWnd, &rect);
H> FillRect(dc, &rect, 0);
H> DrawEdge(dc, &rect, EDGE_RAISED, BF_TOPLEFT);
H> DrawEdge(dc, &rect, EDGE_RAISED, BF_BOTTOMRIGHT);
H> DrawText(dc, "the", -1, &rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
H> EndPaint(hWnd, &ps);
H> break;
H> case WM_LBUTTONDOWN:
H> MessageBox(NULL, "Pressed", "Button", MB_OK); // !!!!!!!!!! — не работает
H> break;
H> }
H> return 0;H>}
Старую функцию надо бы вызывать вна те сообщения которые ты не обрабатываешь
см CallWindowProc
Ed.ward
Пока на собственное сообщение не было ответов, его можно удалить.