Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
6-78020
xShadow
2003-05-19 15:22
2003.07.24
Имя удалённого пользователя .....


3-77762
Dimaz-z
2003-07-01 21:36
2003.07.24
Как менять записи местами в Grid е с помощью мыши?


8-78007
boris
2003-04-01 11:39
2003.07.24
графика


1-77956
Multy
2003-07-10 03:09
2003.07.24
Как перехватить нажатие любой клавиши


1-77980
Виталик
2003-07-10 20:26
2003.07.24
Перемещение формы с BorderStyle=bsNone





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский