Ну короче! Нужно организовать подсказку для каждой ячейки в таблице... к то нить подскажите хотябы идею подкинуть как отлавить позицию (точнее ячейку) курсора... Мне хотябы идею а за кодом я сам постою....
Да!! Тока мышка не кликает на ячейку, должна при новедении выдавать подсказку... а тут она просто покажет для текущей.. а вот как выбрать тукущей тут над которой курсор... безз клика мышей..
ну самый первый вариант который приходит в голову. это с помощью WM_MOUSEMOVE берешь координаты где сейчас курсор, и вычисляешь над какой ячейкой он сейчас расположен (высоту и ширину ячеек также можно узнать)
делал хинт для каждого столбца таблицы.. (идея конечно не фонтан) но для задачи вполне подходит (делал на основе диалога)
Код:
UINT width[GetCols()+1]; // буду хранить границы каждого столбца
int i;// ну тут понятно
CString s; // тут какой-нить текст
width[0]=0; // первая граница на 0
for (i=1;i<GetCols()+1;i++) width[i]=width[i-1]+(GetColWidth(i-1)/15);
// GetColWidth(i-1)/15 ширина столбца в пикселях (подобрал опытным путем), массив заполняю например сразу после создания таблицы и установки колва столбцов их ширины и прочего
//------------------------
// потом в OnMouseMove диалогового окна
//добавляю
for (i=0;i<GetCols();i++)
if (x>=width[i]&&x<width[i+1]) // тут проверяю еси попадает между двумя значениями значит то что нужно
{
s="гы гы... lol";
mTT.DelTool(&Grid); // mTT - экземпляр класса CToolTipCtrl
mTT.AddTool(&Grid,s); // где нибудь в OnShowWindow его создаю и задаю свойства, а тут добавляю окно над которым будут появлятся хинты
}
//------------------------
//после этого в PreTranslateMessage диалогового окна
//добавляю строку
mTT.RelayEvent(pMsg);
// и поидее все должно работать
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах