| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Как перекидывать курсор |
| Автор: Autumn 1.5.2006, 11:56 |
| У меня MDI-приложение. Для каждого документа есть окно View и диалоговое окно. Как перекидывать курсор между ними. Скажем в диалоговом окне нажимаем кнопочку, нужно, чтобы курсор указал на определенную точку во View. |
| Автор: Бугемот 1.5.2006, 11:58 |
| в конструктор диалога можно передать указатель на Parent. заведи во View public метод и через этот указатель на View делай все что надо |
| Автор: Autumn 6.5.2006, 21:04 |
| Когда указываю родителя, совсем не то получется. А чтобы передать в качестве параметра в диалог указатель на окно представления CMyView *pView, надо естественно прописать #include "DreemlarView.h", а как только я это делаю, компилятор ругается на строку CDreemlarDoc* GetDocument(); в DreemlarView.h. Короче приходится делать через пень колоду. Сначала передавать управление public методу документа, а тот у меня уже вызывает public метод класса представления. Но это ведь через пень-колоду. Хочется сразу из диалога вызывать View |
| Автор: Earnest 10.5.2006, 16:48 |
| Не нужно создавать лишних зависимостей. Чтобы переместить курсор в другое окно, нужно всего лишь вызвать SetFocus, а это функция CWnd (т.е. даже CView не нужно). Чтобы переместить курсор в нужную позицию, нужно получить эту позицию в координатах экрана и вызвать SetCursorPos(x,y) (это глобальная функция). Найти вью можно так: ((CFrameWnd*)AfxGetMainWnd())->GetActiveFrame()->GetActiveView(). Если в диалоге есть доступ к документу, и вью у каждого документа только один, то можно его получить функциями GetFirstViewPosition - GetNextView. |