![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Проблема такая: необходимо создать форму (БЕЗ рамки и ее заголовка) на 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?
|
|
#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 - строка типа String2) Как выбрать шрифт для вывода? Заранее спасибо ))) |
|
#7
|
|||
|
|||
|
Никто не знает?
![]() |
|
#8
|
|||
|
|||
|
1. Посмотри правильно ли ты вызываешь WM_PAINT и не забыл-ли поставить вызов дефолтного WM_PAINT-а.
2. Заведи переменную типа HFont; CreateFont(параметры); Потом к канве формы подключай этот фонт и отрисовывай DrawText-ом |