|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Построение окна с нужным стилем (WinApi)
Проблема такая: необходимо создать форму (БЕЗ рамки и ее заголовка) на WinApi. Пишу так:
Код:
hMainWnd := CreateWindowEx(WS_EX_TOPMOST, 'WinClass', 'Window', WS_VISIBLE or WS_CLIPCHILDREN, 640, 228, 100, 100, HWND(nil), HMENU(nil), GetModuleHandle(nil), nil); Но все равно выводит с рамкой. Посмотрил классы этого окна после компиляции: WS_BORDER WS_CAPTION WS_VISIBLE WS_DLGFRAME WS_CLIPCHILDREN после насильного убирания (через старонню утилиту) WS_BORDER рамка и заголовок пропадают... Кто сможет помогите плиз!!! |
#2
|
|||
|
|||
SetWindowLong не пробовал?
А вообще, для WinAPI бери Петзольда и штудируй. |
#3
|
||||
|
||||
A WS_POPUP?
Что делать, когда сломался комп: 1. Если вы юзер - делать ноги. 2. Если ремонтник - делать деньги. 3. Если вы программист - делать вид, что так было задумано. |
#4
|
|||
|
|||
Спасибо WS_POPUP работает! А за Петцольда огромный респект, обязательно почитаю!
|
#5
|
|||
|
|||
И еще два вопросика:
1) Сделал таймер (внутри него расчитываю время каждые 500 мс). Как в нем теперь вывести строку на экран? Пробовал вызывать функцию окна с параметром WS_PAINT, причем выводимая строка - глобальная: не отрисовывает (выводит то, что было при создании формы). Аналогичный результат получил вывод напрямик из таймера ((( Строку рисую так: BeginPaint(hWnd, PS); SetTextColor(PS.hdc, $00FF00); SetBkColor(PS.hdc, $000000); DrawText(PS.hdc, PAnsiChar(strTime), Length(strTime), TextRect, DT_NOCLIP); EndPaint(hWnd, PS); где: hWnd - Handle окна PS - PAINTSTRUCT strTime - строка типа String 2) Как выбрать шрифт для вывода? Админ удали пожалуйся этот мессаг у меня инет глюканул (((( Последний раз редактировалось Drozh, 20.07.2008 в 02:24. |
#6
|
|||
|
|||
И еще два вопросика:
1) Сделал таймер (внутри него расчитываю время каждые 500 мс). Как в нем теперь вывести строку на экран? Пробовал вызывать функцию окна с параметром WS_PAINT, причем выводимая строка - глобальная: не отрисовывает (выводит то, что было при создании формы). Аналогичный результат получил вывод напрямик из таймера ((( Код:
Строку рисую так: BeginPaint(hWnd, PS); SetTextColor(PS.hdc, $00FF00); SetBkColor(PS.hdc, $000000); DrawText(PS.hdc, PAnsiChar(strTime), Length(strTime), TextRect, DT_NOCLIP); EndPaint(hWnd, PS); где: hWnd - Handle окна PS - PAINTSTRUCT strTime - строка типа String 2) Как выбрать шрифт для вывода? Заранее спасибо ))) |
#7
|
|||
|
|||
Никто не знает?
|
#8
|
|||
|
|||
1. Посмотри правильно ли ты вызываешь WM_PAINT и не забыл-ли поставить вызов дефолтного WM_PAINT-а.
2. Заведи переменную типа HFont; CreateFont(параметры); Потом к канве формы подключай этот фонт и отрисовывай DrawText-ом |