не может изменить порядок управления MFC

У меня есть диалоговое окно со списком, ползунком и кнопкой.
Я пытался изменить цвет фона, но мне не удалось это изменить, поэтому я подумал, что если я добавлю «элемент управления изображением» в качестве растрового изображения и поместу его в фон, я добьюсь успеха, но теперь проблема заключается в том, что » Picture Control «находится на вершине всех элементов управления.

Я пытался изменить вкладку с помощью Ctrl + d, но ничего не изменилось.
Я также пытался использовать SetWindowPos сверху или снизу, но это также ничего не изменило.

Я заметил, что если я нажимаю в месте расположения кнопки, она выводится на передний план, как я хочу.
Есть ли способ «нажать» на все элементы управления в начале? я что-то пропускаю, чтобы довести контроль до вершины?

0

Решение

Если вам нужно изменить цвет фона диалогового окна, вам нужно обработать Сообщение WM_CTLCOLORDLG и верните ручку в кисть (если кисть не является стандартным объектом, обязательно удалите кисть после закрытия диалогового окна) — или вы можете обработать Сообщение WM_ERASEBKGND и стереть фон самостоятельно.

1

Другие решения

Я пытался изменить вкладку с помощью Ctrl + D, но ничего не изменилось. Я также пытался использовать SetWindowPos сверху или снизу, но это также ничего не изменило.

Ctrl + D, действительно дает вам в режиме переупорядочения, однако есть более надежный способ проверки. Шаблон диалога находится в текстовой форме в файле .RC, где вы можете просмотреть порядок элементов управления с помощью текстового редактора и отсортировать строки вручную, как вы хотите. Это будет порядок создания элемента управления и порядок табуляции. Иногда это даже проще изменить порядок элементов управления.

Более того, когда ваше приложение работает, инструмент Spy ++ SDK может перечислять окна, и снова он предоставит вам порядок окон для проверки.

SetWindowPos с правильными аргументами изменяет Z-порядок элементов управления также во время выполнения.

0

По вопросам рекламы [email protected]