Форум: "Основная";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
ВнизОбъясните пожалуйста что, возвращает GetDC(0) Найти похожие ветки
← →
Вован (2003-07-10 18:13) [0]???
← →
Murad (2003-07-10 18:16) [1]Device Context рабочего стола
← →
Вован (2003-07-10 18:30) [2]А что такое рабочий стол?
← →
VMcL (2003-07-10 18:34) [3]>Вован (10.07.03 18:30)
>А что такое рабочий стол?
"рабочий стол" - это место, на котором монитор стоит.
← →
Murad (2003-07-10 18:40) [4]2Вован
>А что такое рабочий стол?
Даже не знаю как сказать... :)) Если ты все окна свернешь, то
на экране покажется поверхность, на которой лежат ярлычки(Мои
документы, Сетевое окружение...) - это и есть ОН - РАБОЧИЙ
СТОЛ. (типа главное окно для виндов). Все эти определения не
очень корректны, но как по другому объяснить - я не знаю :)))
← →
Вован (2003-07-10 18:55) [5]А почему его значение переодическм меняется, даже от движения мышки?
← →
clickmaker (2003-07-10 19:03) [6]Потому что на самом деле значение возвращаемое GetDC - дескриптор области памяти, которая выделена под инфу о контексте. А он может меняться от вызова к вызову
← →
Murad (2003-07-10 19:04) [7]ЗНАЧЕНИЕ РАБОЧЕГО СТОЛА - ЭТО ОРЕХ!!! :))
Видимо иеется в виду HDC...
2Вован
Сильно подозреваю, что у тебя где-то в обработчике OnMouseMove
(или еще каком-то) есть строчка, похожая на следующую...
FDc := GetDc(0) - ЭТО НЕ ВЕРНО т.к. Функция GetDc СОЗДАЕТ НОВЫЙ КОНТЕКСТ ВОСПРОИЗВЕДЕНИЯ связанный с окном (0 - хендл окна рабочего стола) - соответственно хендл этого контекста то же другой...
← →
Вован (2003-07-10 19:20) [8]OnMouseMove - нету там ничего
FDc := GetDc(0) - а как правильно?
Вообще задача стоит такая. Нужно рисовать поверх всего что есть на экране.
← →
Вован (2003-07-10 19:24) [9]>> даже от движения мышки
Точнее при передвиге ее в другое, отличное от того в котором она находилась в момент запуска программы
← →
Вован (2003-07-10 19:34) [10]А вот здесь
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/devcons_5g83.asp
вообще написано вот что
Remarks
Note that the handle to the DC can only be used by a single thread at any one time.
For parameters lpszDriver and lpszDevice, call EnumDisplayDevices to obtain valid names for displays.
When you no longer need the DC, call the DeleteDC function.
Windows 2000/XP: If lpszDriver or lpszDevice is DISPLAY, the thread that calls CreateDC owns the HDC that is created. When this thread is destroyed, the HDC is no longer valid. Thus, if you create the HDC and pass it to another thread, then exit the first thread, the second thread will not be able to use the HDC.
Получается что, в разных потоках значение GetDC разное и полученное в одном потоке не может использоваться в другом
???
← →
Вован (2003-07-10 19:48) [11]Точнее этот контекст будет работать пока существует поток создавший его.
← →
Murad (2003-07-11 11:00) [12]2Вован
>FDc := GetDc(0) - а как правильно?
Не правильно в цикле его получать. Сама по себе строчка
правильная.
А для рисования поверх всего на экране, думаю DC вообще не
подойдет... Ведь контекст привязан к конкретному окну...
Наверное нужно поискать что-то более хитрое...(если винда
вообще предоставляет такую возможность) Или создавать
StayOnTop окно и рисовать на него
← →
Fredericco (2003-07-11 11:04) [13]Рабочий стол - это TreeView.
← →
DVM (2003-07-11 11:09) [14]
> Fredericco © (11.07.03 11:04)
> Рабочий стол - это TreeView.
Это что еще за чушь? Рабочий стол это даже не ListView (хотя к истине ближе)
← →
Fredericco (2003-07-11 11:18) [15]Опечатался.
Почему ето он не ListView?
← →
Fredericco (2003-07-11 11:22) [16]http://www.akzhan.midi.ru/devcorner/akdeltnt-content/akdeltnt-0064.html
http://forum.codenet.ru/showthread.php?threadid=7620
http://www.delphikingdom.ru/asp/answer.asp?IDAnswer=4287
Пусть и перекрыт ListView, но для программиста это не так важно.
← →
DVM (2003-07-11 11:24) [17]Потому как для программиста Рабочий стол (он же Desktop) это то окно, которое расположено в самом низу z-последовательности окон (и на котором отчасти находится картинка-обои). Хотя это не совсем верно тоже (точнее это не только окно).
А окно программы Explorer - Progman, с размещенным на нем в том числе и SysListView32 - это скорее Рабочий стол для пользователя.
Т.е. если эксплорер закрыть, рабочий стол от этого не исчезнет.
← →
Fredericco (2003-07-11 11:25) [18]http://epg2000.narod.ru/icons_to_left_side_desktop.shtml.htm
← →
Fredericco (2003-07-11 11:29) [19]Все правильно. Так где противоречие моего высказывания?
← →
DVM (2003-07-11 11:32) [20]
> Fredericco ©
В вопросе речь не о Эксплорере и его окнах, а о Desktop и его DC. ListView тут никаким боком.
← →
Fredericco (2003-07-11 11:34) [21]Так я не на сабж ответил, а "Что такое рабочий стол?". Так как спрашивает программист я и ответил по программерски.
← →
Вован (2003-07-11 14:38) [22]>> А для рисования поверх всего на экране, думаю DC вообще не
>> подойдет... Ведь контекст привязан к конкретному окну...
>> Наверное нужно поискать что-то более хитрое...
А соображения ест какие нибуть
>>(если винда вообще предоставляет такую возможность)
:(
>> Или создавать StayOnTop окно и рисовать на него
Окно не подойдет
← →
Игорь Шевченко (2003-07-11 14:45) [23]Рабочий стол - это окно, handle которого возвращается по GetDesktopWindow.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.008 c