Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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.
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)