Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Как купить рекламу на форуме


Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2016, 14:02   #11
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

Мне не надо пояснять что делает функция.
с SetWindowExtEx вы масштабируете область просмотра. Итого ваш центр несколько в стороне.

Давайте так. Или вы показываете полный код. Или проверяетн все функции.
Ибо то что у вас тут код есть я только что проверил. Работает, если не смещать начало кординат
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 14.03.2016 в 14:05.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.03.2016, 14:09   #12
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Мне надо пояснять что делает функция.
SetWindowExtEx а тут вы масштабируете область просмотра. Итого ваш центр несколько в стороне.
с осью все в порядке.

вот пример из книги. те же настройки системы координат.

те же точки. результат звезда. только тут нету функции

PathToRegion(). там просто строится путь, а потом выводится на экран фигура ограниченная этим путем.

Код:
// Листинг 1.12. Графические построения с использованием путей

POINT pt[5] = { {0,100}, {-59,-81}, {95,31}, {-95,31}, {59,-81} };
const int WIDTH = 400;
const int HEIGHT  = 300;
 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	PAINTSTRUCT ps;
	HDC hdc;
	static int sx, sy;
	static HBRUSH hBrush;
	HRGN hRgn;
	switch (message)
	{
	case WM_CREATE:
		hBrush = CreateSolidBrush(RGB(255, 0, 0));
		break;
	case WM_SIZE:
		sx = LOWORD(lParam);
		sy = HIWORD(lParam);
		break;
	case WM_PAINT:
		hdc = BeginPaint(hWnd, &ps);
		SetMapMode(hdc, MM_ANISOTROPIC);	
		SetWindowExtEx(hdc, WIDTH, -HEIGHT , NULL);
		SetViewportExtEx(hdc, sx, sy, NULL);
		SetViewportOrgEx(hdc, sx/2, sy/2, NULL);
		BeginPath(hdc);
		Polyline(hdc, pt, 5);
		CloseFigure(hdc);
		EndPath(hdc);
		SelectObject(hdc, hBrush);
		SetPolyFillMode(hdc, WINDING);
		FillPath(hdc);
		EndPaint(hWnd, &ps);
		break;
	case WM_DESTROY: PostQuitMessage(0); break;
	default: return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return 0;
}
Изображения
Тип файла: jpg Безымянный.JPG (24.2 Кб, 115 просмотров)
RAFA91 вне форума Ответить с цитированием
Старый 03.03.2020, 14:15   #13
1egenga
Новичок
Джуниор
 
Регистрация: 03.03.2020
Сообщений: 2
По умолчанию

Нужно setы с изменениями режимов окна поместить непосредственно перед FillRgn
1egenga вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме 20000 рублей в месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
почему прсер работает на одних сайтах и не работает на других PHP_DELETANT PHP 4 12.02.2016 13:45
Помогите разобраться - не работает файл со скриптом. При загрузке из консоли этот же скрипт работает Kazik JavaScript, Ajax 6 27.11.2015 16:09
Не работает анимация. Механизм работает лишь при изменения числа в едит1. Студент ММИ Помощь студентам 1 18.05.2015 07:39
не работает relese версия проги и debug работает тока на моем компе D][mon C# (си шарп) 2 04.05.2012 19:21
Почему программа на С++ не работает с локальным описанием массива, но работает с глобальным? >>STINGER<< Помощь студентам 4 08.03.2011 09:56


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS