Мне нужно, чтобы мое приложение могло работать в окне. Я использую пока (как заглушечный вариант) GetCursorPos (возвращает экранные координаты мыши), затем GetWindowRect (позиция окна), потом преобразую кординаты в относительные и пытаюсь с ними работать, но Direct3D видит только клиентскую часть окна, ладно, константно (на глаз) корректирую "прицел": что-то типа mx+=4; my+=20 (чотбы учесть заголовок), и вывожу в позиции мыши D3D квадрат, но расстояние между квадратом и курсором меняется при движении по окну. Вся проблема в том, что экранные и D3D координаты как-то непонятно связаны.
не знаю как насчет "указка", а вот "pick" я нашел, посмотрю, правда наворочно лишнего много, но я покопаюсь.
Там из-за модели наворочено. Кроме работы с координатами, показана работа с моделью. Опеределение точки модели, куда мы ткнули указателем.
Что-то там не тое, там кординаты не RHW, а 3D, что впрочем тоже пригодится, но мне сейчас надо работа с RHW вершинами
RHW - это задание вершин. А что и как мы нарисуем из них - по желанию. А в этом примере показан пример работы с координатами(их взаимосвязь), с моделью - которая состоит из тругольников. Конечно сложновато, но дает ответы на очень много вопросов. Суть, та же самая. Работа с координатами. Здесь проблема в том, что сразу появилась модель. MS пыталась в одном примере дать ответ на кучу вопросов. D3D удобная штука, но я все - же сторонник open GL.
честно говоря я ничего не понял,но вот эти магические строчки помогли: mx += (int)4*mx*matProjection._11/wWidth; my += (int)12*my*matProjection._22/wHeight; , хотя по y существует маленькая неточность, но она настолько незначительна, что мне не мешает.