Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2011, 05:04   #1
savva
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 225
По умолчанию WM_SIZING

Здравствуйте.

есть два вопроса,усердное гугление не дало результата.

как мне сделать resize содержимого вместе с окном ?


как сделать printscreen содержимого окна?
За помощь: Нажмите на весы слева от сообщения!
savva вне форума Ответить с цитированием
Старый 15.11.2011, 10:05   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

1) вручную изменять координаты каждого элемента окна
2) получить hdc окна, из него получить битовую карту GetDIBits, а их уже можно запихнуть либо в HBITMAP либо в файл *.BMP
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 15.11.2011, 16:25   #3
savva
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 225
По умолчанию

Код:
case WM_SIZING:
		GetClientRect(hWnd,&s);
//		CopyRect(&s,&z);
		switch(wParam)
		{
			case WMSZ_BOTTOM:
				Width  = LOWORD(lParam);
				Height = HIWORD(lParam);
				s.bottom=s.top+Height;
				break;
				
			case WMSZ_LEFT:
				Width  = LOWORD(lParam);
				Height = HIWORD(lParam);
				s.left=s.right-Width;
				break;
				
			case WMSZ_RIGHT:
				Width  = LOWORD(lParam);
				Height = HIWORD(lParam);
				s.right=s.left+Width;
				break;
				
			case WMSZ_TOP:
				Width  = LOWORD(lParam);
				Height = HIWORD(lParam);
				s.top=s.bottom-Height;
				break;
		}
		UpdateWindow(hWnd);
		break;
не получается, rect внутри не меняет своих размеров.
Ещё вопрос по поводу UpdateWindow InvalidateRect и прочих. Они вызывают WM_PAINT?
И ещё вопрос по поводу ClientRect. Какой мне Rect передастся если я создавал два,один фон,а второй закраску делает.

по второму вопросу,формулировка вопроса немного другая,в 5 утра написал чушь.

мне нужно скопировать содержимое окна в данный момент(по нажатию клавиши) открыть новое окно(читай создать) и отправить то что я скопировал. я моём представлении нужно делать CopyRect а потом этот RECT передавать в новое окно. я прав?
За помощь: Нажмите на весы слева от сообщения!

Последний раз редактировалось savva; 15.11.2011 в 16:36.
savva вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц