![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Unconnected |
![]()
Сообщение
#1
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Привет всем.
![]() Сейчас начал переводить одно своё приложение на api, весёлое занятие) С механизмами всё понятно, часть проги портировал, а вот с отображением контролов на окне не очень ясно.. Во-первых - всегда ли обязательно создавать, например, label таким образом (для себя в ф-ю обернул): Procedure createstatic(caption:string;x,y,wid,hei:integer); , или есть какой-то более простой способ внешнего проектирования? Я читал про добавление информации о контролах в ресурсы; это, в принципе, довольно удобно, если сделать быструю компиляцию .rc в .res батником (ну когда нужно быстро что-то изменить там), но вроде как он (способ) нестабильный какой-то.. Во-вторых - где задавать такие параметры static, как шрифт, цвет, размер текста? Плохо, что вся инфа в msdn по api во-первых, на английском, а во-вторых, там сишный синтаксис. Вот в msdn, например, было написано ShowWindow(hwndMain, nCmdShow);, а делфи второй параметр не принимает такой, а принимает CmdShow (хотя в мсдн вроде и было указано, что от платформы зависит). И ещё, вот, допустим, в процессе исполнения надо мне изменить что-то, например цвет формы. Для этого достаточно вызвать функцию с параметрами, или надо в оконной функции описывать обработку сообщения CTL_COLOR, а потом когда надо отправлять это сообщение? Сообщение отредактировано: Unconnected - 28.06.2010 17:22 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Я вот не пойму, в контексте api диалог и окно это одно и то же, что ли? Никогда не говори этого своей программе, потому как функция диалога и функция окна - это совершенно разные вещи. По-русски о функции диалога можно почитать здесьОбратил внимание, что в конце DlgProc отсутствует вызов DefWindowProc? Это не ошибка, в функции диалогового окна вызова этой функции быть не должно: Цитата Although the dialog box procedure is similar to a window procedure, it must not call the DefWindowProc function to process unwanted messages. Unwanted messages are processed internally by the dialog box window procedure. Есть еще несколько отличий функции окна-диалога от функции обычного окна. Если интересно - напишу... Цитата А можно шрифт для удобства прямо в .rc вписывать при описании статика? Можно описать шрифт, который будет установлен для всего диалога, если этого недостаточно - то придется слать сообщение. По отдельности задавать шрифт для каждого контрола в RC нельзя. Это, кстати, совершенно совпадает с поведением CreateWindow... Если ты создаешь контрол, и его шрифт тебя чем-то не устраивает - ты вправе его изменить посылкой сообщения этому контролу. Но прямо при создании (в вызове CreateWindow) ты задать шрифт не можешь.Для удобства работы с RC-файлами я бы посоветовал тебе скачать какой-нибудь из редакторов (у меня - ResEd 2.0.0.0 для таких нужд). Если надо подправить окошко - очень удобно, он визуальный... |
![]() ![]() |
![]() |
Текстовая версия | 13.07.2025 2:23 |