У меня есть диалоговое окно со списком, ползунком и кнопкой.
Я пытался изменить цвет фона, но мне не удалось это изменить, поэтому я подумал, что если я добавлю «элемент управления изображением» в качестве растрового изображения и поместу его в фон, я добьюсь успеха, но теперь проблема заключается в том, что » Picture Control «находится на вершине всех элементов управления.
Я пытался изменить вкладку с помощью Ctrl + d, но ничего не изменилось.
Я также пытался использовать SetWindowPos сверху или снизу, но это также ничего не изменило.
Я заметил, что если я нажимаю в месте расположения кнопки, она выводится на передний план, как я хочу.
Есть ли способ «нажать» на все элементы управления в начале? я что-то пропускаю, чтобы довести контроль до вершины?
Если вам нужно изменить цвет фона диалогового окна, вам нужно обработать Сообщение WM_CTLCOLORDLG и верните ручку в кисть (если кисть не является стандартным объектом, обязательно удалите кисть после закрытия диалогового окна) — или вы можете обработать Сообщение WM_ERASEBKGND и стереть фон самостоятельно.
Я пытался изменить вкладку с помощью Ctrl + D, но ничего не изменилось. Я также пытался использовать SetWindowPos сверху или снизу, но это также ничего не изменило.
Ctrl + D, действительно дает вам в режиме переупорядочения, однако есть более надежный способ проверки. Шаблон диалога находится в текстовой форме в файле .RC, где вы можете просмотреть порядок элементов управления с помощью текстового редактора и отсортировать строки вручную, как вы хотите. Это будет порядок создания элемента управления и порядок табуляции. Иногда это даже проще изменить порядок элементов управления.
Более того, когда ваше приложение работает, инструмент Spy ++ SDK может перечислять окна, и снова он предоставит вам порядок окон для проверки.
SetWindowPos
с правильными аргументами изменяет Z-порядок элементов управления также во время выполнения.