Форум: "Прочее";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
ВнизВорох вопросов по API, дубель два Найти похожие ветки
← →
Dib@zol (2006-10-22 13:44) [0]Здравствуйте, эксперты, поддержка вы моя и опора!
Сёдня у меня просто куча вопросов по Эй-Пи-Ай (aka API),
и все как на подбор сложные...
Только убедительная просьба - НЕ НАДО ФЛУДИТЬ!!! А то
меня уже прошлый раз некий нехороший члаэк отфутболил:
мол а я всё знаааааю, а тибе ни скааааазюуууу! А
остальные его поддержали. Пожалуйста ответьте на вопросы,
а не советуйте мне читать умные книжки по API. Мне нужны
ответы здесь и сейчас. Пожалуйста. Вобщем текст я целиком
скопировал из прошлого вопроса:
1) Как получить вокруг "Static", те. метки на API-окне,
приподнятую рамку в 1 пкс. толщиной? DrawEdge и
Polyline не предлагать! Ну если тока на крайняк. Вот
как делать опущенную рамку я знаю, SS_SUNKEN. А вот
как приподнятую? Чё комбинировать в CreateWindow?
Или может сообщение какоенить этой метке слать? А
то я уже задалбался методом тыка пробовать Х(
2) Как в метке задавать цвет шрифта? в WM_SETFONT и в
структуре TLogFont нет такого параметра, как цвет!
3) Как правильно пользовать WM_CTLCOLORBTN? Я уже
пробовал писать в Result Create(Любой)Brush, но
чёта не пашет подскажите в чём проблема?
4) Вопрос по моему связанный с предыдущим: как
реализовать прозрачность фона "Static"-метки?
Я догадываюсь что в ответ на WM_CTLCOLORSTATIC
надо устанавливать кисточку в HOLLOW_BRUSH или
там NULL_BRUSH, но КАК (см. вопр. №2)? TextOut
не предлагать! Мне нужен отдельный контрол, к
которому можно обратиться по его хэндлу.
5) Как в "EDIT" - текстовом поле распознать нажатие
Enter"a? Причём незамедлительно? Ведь когда фокус
находится в текстовом поле, основной цикл оконных
сообщений простаивает, или ловит сообщения, которые
хэндлит только DefWindowProc. Точно не знаю чё он в
это время творит. Поэтому в него вставлять отлов
Энтера бессмысленно (если конечно его нажатие не
порождает сообщение "родителю"). Вобщем как ловить
Enter правильно?
6) А также меня доконал страшенный глюк с перерисовкой
окна в Windoz XP. У меня есть 2 системы: 98 и XP.
Но под 98-ой всё перерисовывается ништяк, а под XP
главное окно при своём создании получает клиентскую
область, закрашенную в виде картинки, которая была
на этом месте до появленния окна. Причём эта жуть
сохраняется даже если подвигать окно по десктопу.
А если случайно задвинуть часть окна за пределы
рабочего стола, то при возвращении его весь Region
окна, попавший за экран, закрашивается цветом
крайнего пикселя окна, включая и границу, и
заголовок!!! Как бороться с этой напастью?
Уф вроде всё. Помогите плз.
← →
Ketmar © (2006-10-22 13:47) [1]>[0] Dib@zol 22-Oct-2006, 13:44
>Пожалуйста ответьте на вопросы, а не советуйте мне читать умные книжки по API.
чукча не читатель?
>Мне нужны ответы здесь и сейчас.
какова оплата? сумма не озвучена.
← →
Dib@zol (2006-10-22 13:51) [2]
> чукча не читатель?
Пофлудил? Молодец.
> чукча не читатель?
Нет блн просто у чукчи время в Инет-кафе лимитировано!!! :(((( ЫЫЫЫЫ
А дельные предложения есть али как?
← →
Ketmar © (2006-10-22 13:54) [3]>[2] Dib@zol 22-Oct-2006, 13:51
>А дельные предложения есть али как?
есть. книги читать. или оплатить работу.
← →
Dib@zol (2006-10-22 14:00) [4]Знаешь Ketmar я канешна не профи в деле функционирования форумов, но считаю что форумы для того и нужны, чтоб ЛЮБОЙ даже САМЫЙ необеспеченный (эх...) пользователь, который ходит в Интернет через Инет-кафе за неимением собстного модема, может найти здесь ответ на свой вопрос. Так что изини меня, но требовать за ответ деньги это
Удалено модератором
:)))
← →
Ketmar © (2006-10-22 14:14) [5]>[4] Dib@zol 22-Oct-2006, 14:00
считай дальше. пока меня здесь не забанили -- я вправе отвечать как отвечаю. от Максима, ИШ, ЮЗ, Palladin, Rouse_, etc -- нареканий не поступало.
← →
Antoxa2005 (2006-10-22 14:14) [6]
> я канешна не профи
Что за язык интересно?
← →
Dib@zol (2006-10-22 14:19) [7]
> Antoxa2005 (22.10.06 14:14) [6]
Нормальный русский язык, с нормальными орфографическими багами...
← →
Ketmar © (2006-10-22 14:19) [8]>[6] Antoxa2005 22-Oct-2006, 14:14
>Что за язык интересно?
полагаю, что когда-то был русский...
← →
Dib@zol (2006-10-22 14:21) [9]Почему когда-то? И щас тоже есть...
Ну дык может вернёмся к теме?
← →
Ketmar © (2006-10-22 14:27) [10]>[9] Dib@zol 22-Oct-2006, 14:21
>Ну дык может вернёмся к теме?
сумма не озвучена.
← →
Dib@zol (2006-10-22 14:34) [11]>сумма не озвучена.
сто рублей. Удовлетворён?
← →
Ketmar © (2006-10-22 14:38) [12]>[11] Dib@zol 22-Oct-2006, 14:34
>сто рублей. Удовлетворён?
ищи дальше.
← →
Dib@zol (2006-10-22 14:45) [13]Ketmar ты чё, спамбот? Ну не знаешь ответа, ну не флуди зря! Или просто выпендриться хотца?
← →
Орион © (2006-10-22 14:47) [14]> [0] Dib@zol (22.10.06 13:44)
Купи диски с MSDN.
Вот те сто рублей из [11] как раз на это и пусти ;)
← →
Ketmar © (2006-10-22 14:54) [15]>[13] Dib@zol 22-Oct-2006, 14:45
>Ketmar ты чё, спамбот?
угу. люблю спамоботить всяких странных неко с претензиями.
← →
Dib@zol (2006-10-22 14:55) [16]Знаете ребята, переключитесь-ка на главную страницу и прочитайте:
Как видно из названия, этот сайт посвящен Delphi. Создавая его, мы поставили себе цель сделать не "еще один сайт по Delphi", а нечто универсальное, что действительно поможет программисту именно тогда, когда это необходимо.
Если это в ваших силах, поймите.
И всё-таки, неужели вопросы мои настолько сложны для вас, что вы требуете за ответы деньги, советуете читать MSDN, флудите тут почём зря. Есть тут хоть один не бессердечный человек, могущий ответить на вопросы (в самом начале ветки)?
← →
Ketmar © (2006-10-22 14:56) [17]>[16] Dib@zol 22-Oct-2006, 14:55
>Есть тут хоть один не бессердечный
>человек, могущий ответить на вопросы
нет.
← →
Dib@zol (2006-10-22 15:12) [18]
> угу. люблю спамоботить всяких странных неко с претензиями.
Тут кто-то разглагольствовал о чистоте русского языка...
Злые вы, уйду я от вас. Видимо нет тут хороших профессионалов, только Кетмары. Да и деньги кончились. ЗЫ Нет в жизни справедливости 8(((
← →
Ketmar © (2006-10-22 15:15) [19]>[18] Dib@zol 22-Oct-2006, 15:12
>Тут кто-то разглагольствовал о чистоте русского языка...
мне -- можно. потому что я язык как раз знаю.
>Злые вы, уйду я от вас.
ура! ура!!!
← →
Орион © (2006-10-22 15:21) [20]> [16] Dib@zol (22.10.06 14:55)
> И всё-таки, неужели вопросы мои настолько сложны для вас, что вы требуете за ответы деньги, советуете читать MSDN
Нет. просто лениво писать то, что можно взять в MSDN ;)
← →
Ketmar © (2006-10-22 15:22) [21]зыж интересно: а неко действительно не знает слова "неко"? %-)
← →
Gero © (2006-10-22 15:37) [22]> [21] Ketmar © (22.10.06 15:22)
Я тоже не знаю такого слова. Это что-то жаргонное.
← →
Ketmar © (2006-10-22 15:46) [23]>[22] Gero(c) 22-Oct-2006, 15:37
>Я тоже не знаю такого слова. Это что-то жаргонное.
это что-то японское. "кошка". в данном применении -- "кисо". %-)
← →
Gero © (2006-10-22 16:30) [24]> [23] Ketmar © (22.10.06 15:46)
Ну не знаю, я японский не изучал.
← →
@!!ex © (2006-10-22 16:34) [25]Dib@zol (22.10.06 13:44)
1) Rectangle? :)
2) SetTextColor? :)
3) No comments
4) Написать свой контрол - не судьба?
5) Разве у "EDIT""a нету возможности обрабатывать сообщения?
6) Может рано лезть в WinAPI??????
Кстати.. Вопрос... А что должно быть на окне нарисованно по вашему мнению??
P.S.
Действительно стоит книжек почитать...
MSDN еще рано....
← →
Ketmar © (2006-10-22 16:38) [26]>[24] Gero(c) 22-Oct-2006, 16:30
>Ну не знаю, я японский не изучал.
читай башоргру. %-)
← →
Dib@zol (2006-10-22 16:39) [27]
> 6) Может рано лезть в WinAPI??????
> Кстати.. Вопрос... А что должно быть на окне нарисованно
> по вашему мнению??
Крайний пиксель границы!!! В ХР - синенький такой...
← →
@!!ex © (2006-10-22 16:41) [28]
> Dib@zol (22.10.06 16:39) [27]
С какой радости?????
← →
Ketmar © (2006-10-22 16:41) [29]а говорил, что ушёл... %-(
← →
Ketmar © (2006-10-22 16:42) [30]>[28] @!!ex(c) 22-Oct-2006, 16:41
>С какой радости?????
с той, что неко не умеет читать. и не желает. потому явно "накосячило" в обработчике сообщений. причём код обработчика оно тоже не даёт, потому что это секретная военная разработка.
← →
@!!ex © (2006-10-22 16:46) [31]
> Ketmar © (22.10.06 16:42) [30]
Чето мне страшно стало за нашу армию.....
← →
VirEx © (2006-10-22 17:44) [32]http://winconsul.kladovka.net.ru/
← →
Marser © (2006-10-22 17:46) [33]> [26] Ketmar © (22.10.06 16:38)
> >[24] Gero(c) 22-Oct-2006, 16:30
> >Ну не знаю, я японский не изучал.
> читай башоргру. %-)
А я помню из каратэ, что кошачья стойка называется нэко-аши-дачи :-)
← →
Anatoly Podgoretsky © (2006-10-22 17:50) [34]> читать MSDN
Хочешь в слух прочитаю, такса 100, а если с выражением, то 150
← →
Gero © (2006-10-22 17:53) [35]> [34] Anatoly Podgoretsky © (22.10.06 17:50)
> > читать MSDN
>
> Хочешь в слух прочитаю, такса 100, а если с выражением,
> то 150
Весь MSDN за 150 баксов? Я хочу!
← →
Marser © (2006-10-22 17:54) [36]> [34] Anatoly Podgoretsky © (22.10.06 17:50)
> > читать MSDN
>
> Хочешь в слух прочитаю, такса 100, а если с выражением,
> то 150
А произношение? :-)
← →
VirEx © (2006-10-22 17:56) [37]ой, нажал пост рано.
вобщем так, качай исходник winconsul:
http://winconsul.kladovka.net.ru/
всё сделано чисто на API
1)
HWND CreateWindowEx(
DWORD dwExStyle, // extended window style
LPCTSTR lpClassName, // pointer to registered class name
LPCTSTR lpWindowName, // pointer to window name
DWORD dwStyle, // window style
int x, // horizontal position of window
int y, // vertical position of window
int nWidth, // window width
int nHeight, // window height
HWND hWndParent, // handle to parent or owner window
HMENU hMenu, // handle to menu, or child-window identifier
HINSTANCE hInstance, // handle to application instance
LPVOID lpParam // pointer to window-creation data
);
копай в сторону dwExStyle
2) там нет такого, это делается при прорисовке окна, например отрисовка цвета в static:
WM_CTLCOLORSTATIC: // Изменения цвета STATIC
begin
if LParam = Label1 then
begin
Result := DefWindowProc(Wnd, Msg, WParam, LParam);
SetTextColor(WParam, $FF0000);
end;
end;
3) вот аналогия для EDIT:
WM_CTLCOLOREDIT:begin
SetTextColor(wpr, rgb(255,0,0));
end;
4) прозрачность фона: SetBkMode(DC, TRANSPARENT)
5) нужно перехватывать процедуру сообщений:
//создаём поле ввода (подчиненное окно)
HandleEdit:=CreateWindowEx(0,"EDIT","",WS_CHILD or WS_BORDER, 0,0, 10,20 ,handle,0,instance, @EditWindowProc);
//запоминаем процедуру обработки сообщений от windows к полю ввода - EDIT (чтобы перехватывать только то что нам нужно а остальное - перерисовка окна и т.п. оставить самому компоненту системы - EDIT"у )
OldEditProc:=Pointer(GetWindowLong(HandleEdit,GWL_WNDPROC));
//устанавливаем свою процедуру обработки сообщений
SetWindowLong(HandleEdit,GWL_WNDPROC,Integer(@EditWindowProc));
где EditWindowProc это:
function EditWindowProc (Hwn,msg,wpr,lpr: longint): longint; stdcall;
begin
result:=CallWindowProc(OldEditProc,HandleEdit,Msg,wPr,Lpr); //msg
//вот здесь и отлавливай сообщения едиту
//фильтрация сообщений
case msg of
//событие нажатия клавиши
wm_KeyDown: begin
//смотрим что нажали
case wpr of
//Enter
vk_return:begin
и т.д.
← →
Anatoly Podgoretsky © (2006-10-22 17:58) [38]
> Весь MSDN за 150 баксов? Я хочу!
Какой весь, в час.
← →
Anatoly Podgoretsky © (2006-10-22 17:58) [39]
> А произношение? :-)
Скидка 20 баксов, уже входит в таксу.
← →
Zacho © (2006-10-23 12:45) [40]Продаёшь таксу, умеющую читать MSDN вслух ?
Беру !!!
Перепродам знакомым "собачникам" за офигенные бабки.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.05 c