Вопрос: CreateWindowEx | Добавлено: 30.01.05 21:41 |
Автор вопроса: ![]() ![]() |
Нужно создать всплывающее окно без заголовка и невидимое в панели задач. Какие флаги использовать? |
Ответы | Всего ответов: 16 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 30.01.05 23:24 |
см. тот пример AutoListBox что я тебе присылал для PBEditor'a... Там как раз я помнится создавал окно без видимости в панели и без заголовка... |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 31.01.05 11:41 |
Хм, я сейчас уже не пишу его, но исходники есть. Не под рукой правда. Ты не помнишь, там есть разница при создании окна класса списка и окна класса, созданного с помощью RegisterClassEx? Ведь по идее ListBox и так не подразумевает заголовка в окне. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #3 | Добавлено: 31.01.05 14:48 |
Чтобы не было в панели задач, сначала делается окно (любое), которое будет родителем того окна, что показывается на экране. Своего рода "свадебный генерал". Оно не показывается на экране. Просто создается и всё. Его назначение - быть владельцем иконки, кнопки в панели задач и быть родителем для отображаемого на экране. Т.к. оно невидимо, то и в панели задач его нет. Окно, которое на экране, не имеет кнопки в панели также, но уже по другой причине: оно дочернее и ему не положено иметь свою кнопку. В msdn так и рекомендуется создавать окна, не имеющие отображения в панели задач.
А без заголовка окно со стилями: ws_popup or ws_visible |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 31.01.05 14:56 |
Мда, оказывается я забыл родителя ему поставить. А десктопный родитель не годится. Все, спасибо. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 01.02.05 18:16 |
Ещё вопрос. В этом окне я рисую текст с помощью DrawText. Рисует он чёрным по белому. Как установить цвета текста и фона для этой функции. Не важно для чего, главное чтобы она по ним отрисовывала. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 459 |
Профиль | Цитата | #6 | Добавлено: 01.02.05 19:04 |
Цвет текста - SetTextColor.
Цвет фона будет брать из hDC. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #7 | Добавлено: 01.02.05 19:14 |
SetBKMode,hDC,TRANSPARENT - чтобы белого фона под надписью не было. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 459 |
Профиль | Цитата | #8 | Добавлено: 01.02.05 20:09 |
А белого фона, вроде, и так не будет: ведь DrawText использует в качестве фонового цвета текста фоновый цвет hDC, по которому работает. Или нет? |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #9 | Добавлено: 02.02.05 00:52 |
Нет, DrawText рисует на белом, если бэкграунд у hDC тоже белый, проблем нет, а если какого-то другого цвета, то на фоне, к примеру, синего hDC, будет белый прямоугольник и в него вписан текст |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 459 |
Профиль | Цитата | #10 | Добавлено: 02.02.05 00:56 |
Странно... залил VB-форму розовым, сделал SetTextColor на vbBlue, и затем - DrawText: получились синие буквы на розовым фоне.
Наверное, просто у VB-шной формы "SetBKMode,hDC,TRANSPARENT" уже "кем-то" сделано ![]() |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #11 | Добавлено: 02.02.05 01:34 |
Не кем-то, а msvbvm. Попробуй такое сделать с окном, созданным непосредственно CReateWindowEx, а не с формой. |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #12 | Добавлено: 02.02.05 10:41 |
Мда, оказывается я просто забыл получить системный цвет, а вместо этого подставлял прямо константу. ![]() Было: SetBkColor hDC&, %COLOR_INFOBK А нужно: SetBkColor hDC&, GetSysColor(%COLOR_INFOBK) Простая невнимательность, а к чему привела ![]() |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #13 | Добавлено: 02.02.05 10:45 |
TRANSPARENT - это ж вроде прозрачность. Во всяком случае на PB+API так. Если выставлен этот режим фона, то фон окна вообще не заливается. |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #14 | Добавлено: 02.02.05 15:25 |
Ну что-то одно точно надо делать: либо закрасить при помощи SetBkColor белый Rect печати, либо сделать его при помощи SetBKMode прозрачным, чтобы проглядывался цвет нижнего поля.
А про фон окна вообще не заливается - не совсем понял, о чем речь? FillRect не заливает или что? |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #15 | Добавлено: 02.02.05 15:58 |
Автоматически не заливается. Да мне вроде прозрачность и не нужна. Может Comanche нужна? ![]() |
|