Дано - стандартный контрол DataGrid (для ADODB.Recordset) с просто куцым функционалом, от которого одно расстройство...
Необходимо этот функционал хоть немного расширить, что-бы он удовлетворял хотя-бы минимальным потребностям для решения мой текущей задачи, а именно:
- при при выделении, а точнее при клике мышкой по любой из ячеек находящихся на одной строке, сразу выделялась вся строка, как если-бы кликнуть не на самой ячейке а на заголовке слева.
- при выделении этой строки использовать не унылый черный цвет для выделенной полосы, а что-то повеселее , в общем выделять другим цветом.
Ну и программа максимум добавить возможность выделять разные ячейки разными цветами, в зависимости от данных которые там находятся - например выделять отсутствующий товар красным цветом и т.д.
Для решения этих задач есть такие варианты (как мне думается):
1) Реагировать на какое либо готовое стандартное событие контрола и посылать в обработке этого события нужные оконные сообщения.
При всей простоте способ очень не надежный и не универсальный и если для решения самой первой задачи я думаю его приспособить будет возможно, то для всего остального вряд ли.
2) Универсальный для таких случаев - сабклассинг.
А теперь собственно сам вопрос. При реализации сабклассинга на какие оконные сообщения реагировать для решения указанных задач и соответственно какие оконные сообщения посылать окну для реализации задуманного? А может и вообще не сообщения, а вызовы WInAPI необходимы или комбинация и того и другого.
Конечно есть утилита Spy++ и я уже посмотрел, какие сообщения приходят окну, но их настолько много, что изучения всей этой каши потребует (для меня по крайней мере) просто огромную уйму времени. Я конечно так и буду делать, но вопрос задаю в надежде на то, что кто-то подобное уже делал для этого контрола или аналогичного и может буквально в нескольких словах, а точнее указав на нужные оконные сообщения сильно облегчить мне задачу.