DC := GetDС(0)
SetPixel(DC, 100, 100, $000000);
ReleaseDС(0, DC)
Вывод на екран(не на форму) пикселей.
любыми способами.
зарание спасибо!
И главное всем надо что-то рисовать на экране.:mad: а ты хороше искал по этой теме?
хмм:D На экран? Понятие слишком расплывчивое. Если ты имеешь ввиду рисование на рабочем столе, тогда копай в сторону Windows GUI. Если же хочешь как в играх рисовать, тогда копай в сторону DirectDraw. Также существует полно компонентов на VCL для этого. Например PowerDraw и т.д
хочу запрограмировать програму чтобы она рисовала на екране, без моего вмешательства
Если я скажу тебе что есть такая функция GetDC() которую нужно вызвать с параметром "0" и результат установить в качестве DeviceContext для выводе чере GDI что ты будешь делать?
Или ты рисуешь только на канве? тогда тебе надо создать объект TСanvas и указать в качества handle - GetDC(0), затем рисовать, и затем удалять Canvas.
Зы. ни одна моя программа без моего участия пока графику не выводила :D
для начала можеш розяснить как вывести например чорный пиксель по координатам 100х100, а дальше както сам розберусь ))
Код:
Если знаешь Handle окна, то можешь указать его в качестве "0" в GetDc и ReleaseDc.
А $000000 это феснацетеричное число кажется 0x000000 по вашему.
А для определения размера экрана можешь воспользоваться GetSystemMetrics() - SM_CXSCREEN, SM_CYSCREEN
вот что получилось:
-----
HDC hdc;
HWND hWnd;
SetPixel(hdc, 100, 100, 0x000000);
ReleaseDC(hWnd,hdc);
-----
но оно не работает...
:(
Читай описание API функций GDI, или если собираешься использовать VCL, не парься и рисуй на канве. По-моему намного удобней.
кто-то может выложить кусок кода(работающего), потому, что я не писовал никогда ничего... :(((
Цитата: micro-electric
я в билдер попробувал перевести
но оно не работает...
:(
но оно не работает...
:(
А чему у тебя hdc равно? что ты передаешь, а hWnd, если тебе так хочется инициализируй как ноль
Надо вот так
Код:
HDC hdc;
[COLOR="Red"]HWND hWnd = 0;[COLOR="Teal"]//помоему так нужно (если что поправь)[/COLOR]
hdc = GetDC(hWnd);[/COLOR]
SetPixel(hdc, 100, 100, 0x000000);
ReleaseDC(hWnd,hdc);
[COLOR="Red"]HWND hWnd = 0;[COLOR="Teal"]//помоему так нужно (если что поправь)[/COLOR]
hdc = GetDC(hWnd);[/COLOR]
SetPixel(hdc, 100, 100, 0x000000);
ReleaseDC(hWnd,hdc);
Только точка оч маленькая, лучше запусти в цикле
С использованием VCL
Код:
TCanvas *pCanvas = NULL;
pCanvas = new TCanvas();
pCanvas->Handle = GetWindowDC( GetDesktopWindow() );
pCanvas->Rectangle(10, 10, 500, 500);
pCanvas->Free();
pCanvas = new TCanvas();
pCanvas->Handle = GetWindowDC( GetDesktopWindow() );
pCanvas->Rectangle(10, 10, 500, 500);
pCanvas->Free();
И с использованием Windows GDI
Код:
HDC hDC = NULL;
hDC = GetWindowDC( GetDesktopWindow() );
Rectangle(hDC, 10, 10, 500, 500);
ReleaseDC(GetDesktopWindow(), hDC);
hDC = GetWindowDC( GetDesktopWindow() );
Rectangle(hDC, 10, 10, 500, 500);
ReleaseDC(GetDesktopWindow(), hDC);
если не трудно, зделайте исходник чтобы разобратся