Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: CreateWindowEx Добавлено: 30.01.05 21:41  

Автор вопроса:  CyRax  | Web-сайт: basicproduction.nm.ru | ICQ: 204447456 
Нужно создать всплывающее окно без заголовка и невидимое в панели задач. Какие флаги использовать?

Ответить

  Ответы Всего ответов: 16  

Номер ответа: 1
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 30.01.05 23:24
см. тот пример AutoListBox что я тебе присылал для PBEditor'a... Там как раз я помнится создавал окно без видимости в панели и без заголовка...

Ответить

Номер ответа: 2
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #2
Добавлено: 31.01.05 11:41
Хм, я сейчас уже не пишу его, но исходники есть. Не под рукой правда. Ты не помнишь, там есть разница при создании окна класса списка и окна класса, созданного с помощью RegisterClassEx? Ведь по идее ListBox и так не подразумевает заголовка в окне.

Ответить

Номер ответа: 3
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #3 Добавлено: 31.01.05 14:48
Чтобы не было в панели задач, сначала делается окно (любое), которое будет родителем того окна, что показывается на экране. Своего рода "свадебный генерал". Оно не показывается на экране. Просто создается и всё. Его назначение - быть владельцем иконки, кнопки в панели задач и быть родителем для отображаемого на экране. Т.к. оно невидимо, то и в панели задач его нет. Окно, которое на экране, не имеет кнопки в панели также, но уже по другой причине: оно дочернее и ему не положено иметь свою кнопку. В msdn так и рекомендуется создавать окна, не имеющие отображения в панели задач.
А без заголовка окно со стилями:
ws_popup or ws_visible

Ответить

Номер ответа: 4
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #4
Добавлено: 31.01.05 14:56
 Мда, оказывается я забыл родителя ему поставить. А десктопный родитель не годится. Все, спасибо.

Ответить

Номер ответа: 5
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #5
Добавлено: 01.02.05 18:16
Ещё вопрос. В этом окне я рисую текст с помощью DrawText. Рисует он чёрным по белому. Как установить цвета текста и фона для этой функции. Не важно для чего, главное чтобы она по ним отрисовывала.

Ответить

Номер ответа: 6
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #6 Добавлено: 01.02.05 19:04
Цвет текста - SetTextColor.
Цвет фона будет брать из hDC.

Ответить

Номер ответа: 7
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #7 Добавлено: 01.02.05 19:14
SetBKMode,hDC,TRANSPARENT - чтобы белого фона под надписью не было.

Ответить

Номер ответа: 8
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #8 Добавлено: 01.02.05 20:09
А белого фона, вроде, и так не будет: ведь DrawText использует в качестве фонового цвета текста фоновый цвет hDC, по которому работает. Или нет?

Ответить

Номер ответа: 9
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #9 Добавлено: 02.02.05 00:52
Нет, DrawText рисует на белом, если бэкграунд у hDC тоже белый, проблем нет, а если какого-то другого цвета, то на фоне, к примеру, синего hDC, будет белый прямоугольник и в него вписан текст

Ответить

Номер ответа: 10
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #10 Добавлено: 02.02.05 00:56
Странно... залил VB-форму розовым, сделал SetTextColor на vbBlue, и затем - DrawText: получились синие буквы на розовым фоне.

Наверное, просто у VB-шной формы "SetBKMode,hDC,TRANSPARENT" уже "кем-то" сделано :))

Ответить

Номер ответа: 11
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #11 Добавлено: 02.02.05 01:34
Не кем-то, а msvbvm. Попробуй такое сделать с окном, созданным непосредственно CReateWindowEx, а не с формой.

Ответить

Номер ответа: 12
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #12
Добавлено: 02.02.05 10:41
Мда, оказывается я просто забыл получить системный цвет, а вместо этого подставлял прямо константу. :)

Было:

 SetBkColor hDC&, %COLOR_INFOBK


А нужно:

 SetBkColor hDC&, GetSysColor(%COLOR_INFOBK)


Простая невнимательность, а к чему привела :)

Ответить

Номер ответа: 13
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #13
Добавлено: 02.02.05 10:45
TRANSPARENT - это ж вроде прозрачность. Во всяком случае на PB+API так. Если выставлен этот режим фона, то фон окна вообще не заливается.

Ответить

Номер ответа: 14
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #14 Добавлено: 02.02.05 15:25
Ну что-то одно точно надо делать: либо закрасить при помощи SetBkColor белый Rect печати, либо сделать его при помощи SetBKMode прозрачным, чтобы проглядывался цвет нижнего поля.

А про фон окна вообще не заливается
- не совсем понял, о чем речь? FillRect не заливает или что?

Ответить

Номер ответа: 15
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #15
Добавлено: 02.02.05 15:58
Автоматически не заливается. Да мне вроде прозрачность и не нужна. Может Comanche нужна? ;)

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам