benjweston Ответов: 1

Как поместить элемент управления win32 edit в клиентскую область mdi?


В настольном приложении win32 mdi как бы вы разместили элемент управления редактированием в клиентской области mdi (точно так же, как окно вывода в Visual Studio, когда оно закреплено в нижней части главного окна)? Я делаю графическое приложение OpenGL и в дополнение к использованию ввода мышью и получению координат из положения курсора Я бы хотел, чтобы правка/текстовое поле занимало фокус любого активного дочернего окна для ввода координат рисования с клавиатуры, а не имело бы окно инструментов с плавающим в нем элементом управления редактированием или элемент управления редактированием в каждом дочернем окне. Я девственник C++ , поэтому пока хотел бы сохранить его в win32, а не в MFC. Пожалуйста, будь нежен.

Что я уже пробовал:

Я пробовал использовать CreateWindowEx() точно так же, как и с панелью инструментов и панелью состояния, что было успешно, а использование SetWindowPos() для ответа на сообщение WM_SIZE в главном окне обратного вызова приводит к появлению видимого элемента управления, но я не получаю правильную позицию и, что более важно, он не берет фокус и не отображает текст, помещенный в него при создании окна. Я не могу найти никакой помощи, которая выходит за рамки использования панели инструментов и строки состояния в этом контексте.

1 Ответов

Рейтинг:
7

Richard MacCutchan

Почему бы просто не создать его как еще одно дочернее окно (Edit) и не позволить окну MDI управлять его позиционированием? Видеть Как создать дочерние формы MDI | Microsoft Docs[^] для некоторого примера кода.