Показать сообщение отдельно
Старый 17.12.2005, 22:49     # 2
Trotil
Advanced Member
 
Аватар для Trotil
 
Регистрация: 21.04.2005
Адрес: град Москва
Сообщения: 431

Trotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собой
Цитата:
ЛеднеFF:
COLORREF SetPixel (HDC,x,y, color )
Это функция из Win API, и для консольных приложений просто так применять нельзя. Нужно преварительно получить хендл и контекст устройства.
Код:
#include "stdafx.h"
#include "windows.h"
using namespace std;

BOOL CALLBACK EnumWndProc(HWND hwnd, LPARAM lParam)
{
   if(GetWindowThreadProcessId(hwnd, NULL) == GetCurrentThreadId())
   {
      *(HWND*)lParam = hwnd;
      return FALSE;
   }

   return TRUE;
}

int main(int argc, _TCHAR* argv[])
{
   HWND hWnd;
   HDC hDc;
   EnumWindows(EnumWndProc, (LPARAM)&hWnd);
   hDc = GetDC(hWnd);
   for (int i=20; i<100; i++)

   ::SetPixel(hDc,i,i,RGB(255,0,0));
   getchar();
	return 0;

}
Если у Вас MS VS 6.0, закомментируйте строку
Код:
using namespace std;
По идее должно работать и выводить наклонную красную черту.

Цитата:
ЛеднеFF:
особенно касающиеся какого там HDC
Это контекст устройства, получаемого через хендл, для выполнения опеpаций интеpфейса GDI, куда вы хотите вывести данный пиксель.
Хендл - говоря простым языком, описатетель или идентификатор объекта. Под объектом может подразумеваться все что угодно. (окно, кнопка, даже устройство). При этом гарантируется, что все хендлы (handle) в пределах одного процесса(?) будут уникальны.

Последний раз редактировалось Trotil; 17.12.2005 в 22:57.
Trotil вне форума