Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];

Вниз

wm_SetText   Найти похожие ветки 

 
Shluz   (2003-07-02 12:24) [0]


Panel:=FindWindow("Shell_TrayWnd", nil);
Tray:=FindWindowEx(panel,0,"TrayNotifyWnd","");
Clock:=FindWindowex(tray,0,"TrayClockWClass",nil);
text:="text"#0;
sendmessage(clock,wm_settext,0,cardinal(text));

вообщем- то адресат сообщение получает, но текст контрола не меняется..почему??


 
VMcL   (2003-07-02 13:16) [1]

>Shluz © (02.07.03 12:24)
>вообщем- то адресат сообщение получает, но текст контрола не меняется..почему??

Наверное, потому что срабатывает WM_PAINT.


 
Shluz   (2003-07-04 00:58) [2]

нет, wm_paint не передается в момент смены времени...(шпионом SPY++ смотрел)
блин :(( что ж такое??


 
Игорь Шевченко   (2003-07-04 09:03) [3]

Часы сами рисуются и им без разницы, какой текст установлен какой-то левой программой. Они все равно будут время показывать и именно в обработке сообщения WM_PAINT. Кроме того, есть вариант, что окно часов просто игнорирует сообщение WM_SETTEXT


 
Shluz   (2003-07-04 12:34) [4]

говорю же адрест сообщение получает!!! wm_paint тут не причем...
тест времени устанавливается именно WM_SETTEXT


 
Игорь Шевченко   (2003-07-04 14:56) [5]

Shluz © (04.07.03 12:34)

Откуда сведения ?


 
Shluz   (2003-07-04 19:08) [6]

>Игорь Шевченко шпион SPY++ (MicroSoft) отслеживает все сообщения окна...ну аналог WinSight32 в комплекте Delphi (только интересней)


 
Игорь Шевченко   (2003-07-04 19:37) [7]

Shluz © (04.07.03 19:08)

Никто этому окну не посылает WM_SETTEXT


 
Shluz   (2003-07-04 20:35) [8]

каждую минуту посылается!!!! глупый спор!!! :((


 
default   (2003-07-04 22:46) [9]

Shluz © (04.07.03 20:35)
самое интересно что в WinSight32 при посылке тобой WM_SETTEXT часам - текст ИЗМЕНЯЕТСЯ, но визуально остаётся прежним
когда WM_SETTEXT уже не твоё отправляется меняется и значение в WinSight32 и визуально !? может "часы" "левое значение" на WM_GETTEXT - возвращают?!точнее то которое хочет "поставить" чужая программа, хотя видно что при посылке WM_SETTEXT (не тобой)
никаких специально флагов о том что это сообщение послано откуда-то извне нет!?


 
default   (2003-07-05 00:01) [10]

кстати "время часов" на что нужно будет менять?
если своё время выставлять(отличное от системного), то это можно организовать


 
Morfein   (2003-07-06 11:15) [11]

думается мне, что переменная text описана как string... да?


 
default   (2003-07-06 16:16) [12]

Morfein © (06.07.03 11:15)
это здесь не имеет смысла
хотя конечно если она описана как AnsiString ноль добавлять в конец бессмысленно, потому что он там уже есть для совместимости со строками типа PChar
ты наверно хотел об этом сказать


 
Morfein   (2003-07-06 20:11) [13]

>> default
Если ты не в курсе, переменная типа string не является указателем на массив байтов, которые как-бы хранятся в этой переменной после присвоения test:="text"#0;

В SendMessage(clock, wm_settext, 0, cardinal(text)); функция будет расматривать text как адрес, а по этому адресу совершенно не текст лежит... Поэтому и должно быть использовано преведение типов - pchar(text).


 
Ученик   (2003-07-06 23:50) [14]

>Shluz © (02.07.03 12:24)
Текст контрола меняется и это показывает Spy++, только отрисовывается контрол по текущему времени.


 
default   (2003-07-07 00:07) [15]

Morfein © (06.07.03 20:11)
да знаю я это всё...
можно и @text[1] передавать без всяких приведений


 
default   (2003-07-07 00:11) [16]

Ученик © (06.07.03 23:50)
что значит "Текст контрола меняется" тогда бы он и визуально менялся, так как считывание текущего времени идёт через каждую секунду(примерно) хотя там есть механизмы считывания времени если по каким-либо причинам WM_TIMER не пришло


 
Игорь Шевченко   (2003-07-07 09:49) [17]

Ну вот Spy++ и показывает, что WM_SETTEXT не посылается :) WM_TIMER приходит, контрол меняет сове содержимое, приходит время WM_PAINT - он это содержимое рисует...


 
default   (2003-07-07 16:25) [18]

Игорь Шевченко © (07.07.03 09:49)
WinSight показывает несколько другую картину
посмотрите


 
Игорь Шевченко   (2003-07-07 17:25) [19]

Пришлось запустить WinSight - два сообщения WM_TIMER за перекур :) И все...

NT 4 SP6




 
default   (2003-07-07 18:02) [20]

Игорь Шевченко © (07.07.03 17:25)
ты точно сообщения "часов" смотрел???
у меня каждую секунду идут два сообщения
WM_TIMER потом сразу за ним WM_SETTEXT и польз-ие иногда "проскакивают"


 
Ученик   (2003-07-07 19:29) [21]

>default © (07.07.03 00:11)
Это значит, что Spy++ показывает в Window Caption для Clock установленный текст, что и подтверждает
if GetWindowText(Clock, szText, 255) > 0 then
( StrPas(szText) >default © (07.07.03 00:11)
Это значит, что Spy++ показывает в Window Caption для Clock установленный текст, что и подтверждает
if GetWindowText(Clock, szText, 255) > 0 then
ShowMessage(StrPas(szText))


 
default   (2003-07-07 19:41) [22]

Ученик © (07.07.03 19:29)
тогда объясни мне почему он визуально не меняется, хотя реальное обновление время идёт каждую секунду
смени системное время и увидишь что некоторое время часы будут идти по "старому" времени


 
Ученик   (2003-07-07 19:53) [23]

>default © (07.07.03 19:41)
А почему он обязан визуально меняться, обновление и SetText не обязывают.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.01 c
1-24479
Сан Саныч
2003-08-26 03:12
2003.09.08
Чайниковская проблема с Class Factory


6-24583
Diamond Dog
2003-06-21 19:35
2003.09.08
Ограничение трафика


1-24458
tria
2003-08-27 17:40
2003.09.08
Подскажите, где искать процедуру, отвечающую за прокрутку?


14-24701
iZEN
2003-08-18 19:47
2003.09.08
Sun Solaris.


14-24696
xmapa
2003-08-19 15:02
2003.09.08
Безмышиный интерфейс: как сделать главное меню?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский