2016-01-06 2 views
1

Я хотел бы создать элемент управления (называемый контейнером HWND) в окне (с именем HWND hwnd), который будет содержать другие элементы управления, такие как кнопка (с именем HWND) и изображение (с именем HWND bitmap), избегая использования «статического» стандартного класса. Он будет содержать некоторые настраиваемые элементы управления, сообщения которых будут обрабатываться в главном WndProc (я не хочу добавлять другой WndProc), и я хотел бы в то же время иметь возможность вызывать только один раз, когда функция ShowWindow(container, SW_HIDE) скрыть контейнер управления и все элементы управления, которые он проводит. Возможно ли это в простой WinApi (так что нет MFC или что-то еще)? Какой контроль я должен использовать?Пользовательский контроль «контейнера» с детьми с использованием чистого WinApi

Спасибо, LB

+0

Вместо такого большого описания было бы лучше, если бы вы разместили код своих попыток. Попробуйте сделать минимальный пример проблемы. Тогда мы можем помочь вам оттуда. –

ответ

2

Я рекомендую создать "button" окно со стилем BS_GROUPBOX.

hButton = CreateWindow("button", "group", WS_CHILD | WS_VISIBLE | BS_GROUPBOX, 0, 0, 0, 0, hWnd, NULL, hInstance, NULL); 

BS_GROUPBOX создает прямоугольник, в котором другие элементы управления могут быть сгруппированы. Элементы управления для детей сгруппированы путем рисования границы вокруг них. Текст окна отображается в верхнем левом углу.

+0

Спасибо за ответ. Я не упоминал (извините), что мне нужно будет обрабатывать сообщения для дочерних элементов управления этого дочернего элемента управления, который их содержит. Я имею в виду, мне придется закодировать команду для кнопок или кода для создания настраиваемого шага выполнения и т. Д. Будет ли это возможно с помощью кнопки BS_GROUPBOX? Смогу ли я нарисовать его без прямоугольника, если мне это понадобится? Или это будет выглядеть как обычная кнопка? Еще раз спасибо за потраченное время на чтение и ответ :) – user5752858

+0

Еще раз спасибо. Как насчет кнопок этой кнопки? Получу ли я сообщения для возможного дочернего дочернего элемента этого элемента управления в Mai WndProc или мне придется написать другую функцию обработки? – user5752858

+0

Извините за мое невежество, но я не мог понять, что вы имели в виду ... Не могли бы вы объяснить на примере? Предположим, у меня есть hwnd, который является моим главным окном, hwnd_button_bsgroup, который является описанной вами кнопкой, дочерним элементом hwnd и другим элементом управления hwnd_button_child дочернего элемента hwnd_button_bsgroup. – user5752858

Смежные вопросы