Имеет ли MFC CRichEditCtrl уровень отображения?

#c #visual-c #mfc

#c #visual-c #mfc

Вопрос:

в настоящее время я работаю над устаревшим проектом в MFC.

Я сталкиваюсь с проблемой, когда я создаю кучу объектов CRichEditCtrl в представлении, многие из них перекрывают друг друга. Когда я выбираю их, визуальное изображение полностью перепутано.

Возможно ли щелкнуть по определенному элементу управления и вывести его на «передний план». чтобы я мог редактировать этот конкретный элемент управления?

Другой вопрос в том, есть ли способ динамически различать эти элементы управления?

Я знаю, что когда я их создаю, последним параметром является их идентификатор. Но когда я нажимаю на них, я хочу, чтобы обработчик команд в родительском диалоговом окне или представлении знал, какой из них я собираюсь отредактировать.

Заранее спасибо

Комментарии:

1. Ваш вопрос несколько неясен и несколько широк. Элементы управления не должны перекрываться в первую очередь. Или, если они по какой-либо причине перекрываются, вам следует отключить элементы управления «не на переднем плане», вызвав EnableWindow метод.

2. Чтобы корректно отображать перекрывающиеся дочерние элементы управления, вам необходимо установить WS_CLIPSIBLINGS стиль для каждого из дочерних элементов управления. Это обеспечивает правильное рисование в соответствии с Z-порядком путем применения отсечения к дочерним элементам управления. Чтобы вывести дочернее окно на передний план, передайте HWND_TOP для hWndInsertAfter параметра SetWindowPos() .