АКТИВНОЕ ОКНО - Как предотвратить изменение строки заголовка на синий / серый - PullRequest
1 голос
/ 13 июля 2011

Я вложил в диалоговое окно свойства без режима. Я не использовал новый класс окна для элемента управления, но сделал список свойств дочерним элементом контейнера в диалоговом окне. Все отлично работает, кроме одной вещи. Когда пользователь нажимает на лист свойств, строка заголовка диалогового окна меняется с синего (ACTIVE) на серый (INACTIVE); Я хотел бы, чтобы строка заголовка диалогового окна была синей, когда лист свойств активен, поскольку лист свойств кажется пользователю частью диалогового окна. Лист свойств не имеет строки заголовка.

c ++ win32api no mfc

Вопросы:

1) Есть ли какой-нибудь способ сохранить строку заголовка диалогового окна синим, когда лист свойств активен?

2) Будет ли это работать по-другому, если я использую новый класс окна для листа свойств и добавлю элемент управления, использующий этот класс, в диалоговое окно?

1 Ответ

3 голосов
/ 14 июля 2011

Большое спасибо Сертаку Акьюсу за его предложение.

Похоже, что одна из страниц листа свойств активна всякий раз, когда лист активен, т. Е. Я не смог заставить главный диалог листа свойств быть активным.Таким образом, вы можете использовать обработчики сообщений WM_ACTIVATE в диалоговых окнах для страниц, чтобы установить синюю строку заголовка главного диалогового окна, используя WM_NCACTIVATE TRUE всякий раз, когда страница становится активной.Также необходимо установить серую строку заголовка главного диалога, используя WMNCACTIVATE FALSE, когда страница деактивируется, ЕСЛИ НЕ активируется окно в главном диалоговом окне.

Вот код, который я использовал.

    case WM_ACTIVATE:
        switch LOWORD(wParam)
        {
        case WA_ACTIVE:                 // 1
        case WA_CLICKACTIVE:            // 2
            SendMessage (hwndContainer,WM_NCACTIVATE,TRUE,NULL);
            return true;
        case WA_INACTIVE:
            if ((HWND) lParam != hwndContainer)
            {
                SendMessage (hwndContainer,WM_NCACTIVATE,FALSE,NULL);
                return true;
            };
        }
        break;

hwndContainerявляется HWND диалогового окна, содержащего лист свойств.

Пришлите мне электронное письмо, если вы хотите скопировать мой маленький лист свойств в диалоговом демо.mike.z.dorl@gmail.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...