...
bar.Create(WS_VISIBLE | WS_CHILD, CRect(0, 0, 0, 0), this,IDR_SB );
CRect clientSB;
// Координаты клиентской области строки состояния
bar.GetClientRect(&clientSB);
// Ширина строки состояния
int width = clientSB.Width();
// Размеры секций строки состоянмя
int parts[] = {width / 9 * 2, width / 3 * 2, -1};
// Установка 3 секций
bar.SetParts(2, parts);
...
Отследить перемещ. и нажатия мыши в VisualStudio2005(C++)
Ещё, может кто-то помнит функцию определения координат курсора мыши? Заранее Спасибо!
2.В ресурсах Resource View добавляешь Add Resource -> String Table(разберешся как делать,нетрудно)
3.Для класса диалога добавляешь 2 функции OnLButtonDown(UINT nFlags, CPoint point)и OnMouseMove(UINT nFlags, CPoint point).Добавляй в Messages.Т.е Class View выбираешь класс своего диалога
и на вкладке Messages ищешь WM_LBUTTONDOWN и жмешь Add.Так же и для WM_MOUSEMOVE
4.В OnInitDialog дописываешь
Код:
5.В Ф-ии OnLButtonDown(UINT nFlags, CPoint point) допишешь
Код:
...
CString s;
s.Format(" X: %d, Y: %d", point.x, point.y);
AfxMessageBox("Вы нажали в точке\n"+s);
...
CString s;
s.Format(" X: %d, Y: %d", point.x, point.y);
AfxMessageBox("Вы нажали в точке\n"+s);
...
6.В Ф-ии OnMouseMove(UINT nFlags, CPoint point) допишешь
Код:
...
CString s;
s.Format(" X: %d, Y: %d", point.x, point.y);
// Запись текста в первую секцию строки состояния
bar.SetText(s, 0, 0);
...
CString s;
s.Format(" X: %d, Y: %d", point.x, point.y);
// Запись текста в первую секцию строки состояния
bar.SetText(s, 0, 0);
...
7.В файле Resource h допишешь допустим так
Код:
...
#define IDR_SB 111
...
#define IDR_SB 111
...
Т.о. получаем строку состояния в которой при движении мыши отображаются текущие координаты,при нажатии левой кнопки мыши появляется MessageBox с указанием тех координат,где была
нажата кнопка.
BEGIN_MESSAGE_MAP(CGrafView, CView)
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView::OnFilePrintPreview)
END_MESSAGE_MAP()
хотя OnLButton* методы я обнаружил в классе CWnd. Сейчас попробуй что-то с ними там сделать)
Соре за "юмор". Уже во всём разобрался. Надо было протсо щёлкнуть на вкладке свойств View и там нажать на Messages(прям как в Билдере))
Цитата: BFS
...
BEGIN_MESSAGE_MAP(CGrafView, CView)
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView::OnFilePrintPreview)
END_MESSAGE_MAP()
...
Это ты не туда смотришь.:) Я тебе о другом.У тебя не содержит метода потому что ты его не добавил;)
Открывай Class View,выбирай класс CGrafView(твой класс),выбираешь его
и открывай вкладку Messages(Events,Messages и Overrides - эти вкладки
должны быть ниже)В Messages найди WM_LBUTTONDOWN,выдели и добавь
(появится <Add>OnLButtonDown - нажми,ф-ия автоматом добавится)
Но можно и руками все прописать,только дольше.