Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Размер шрифта пропорционально изменению размеров окна  (Прочитано 12290 раз)
0 Пользователей и 1 Гость смотрят эту тему.
yul4ick
Гость
« : 13-09-2008 14:33 » 

Здравствуйте! У меня вопросик маленький. Скромно так...
Как можно сделать, чтоб в данном коде размер шрифта изменялся пропорционально изменению размеров окна? Не понял
Код:
#include<windows.h>
 #include<windowsx.h>
 #include<stdio.h>
#include<stdafx.h>
 #pragma stophdr
 #include"MainReg.cpp"

 HINSTANCE Instance;
 HWND hw;

 #pragma argsused
 int WINAPI WinMain (HINSTANCE osInstance, HINSTANCE osPreviousInstance,
 LPSTR osParameters, int CommandShow)
 {
 Instance=osInstance;
 MainRegister(":)",50,80,600,500);
 MSG MESSAGE;
 while(GetMessage(&MESSAGE,0,0,0))
 DispatchMessage(&MESSAGE);
 }

 void wPaint(HWND hw);


 long WINAPI MainEventManager(HWND hw, UINT Code,WPARAM wParam,LPARAM lParam)

 { switch(Code)
 {
 case WM_PAINT: wPaint(hw);
   break;
 case WM_DESTROY: PostQuitMessage ( 0 );



 }
 return DefWindowProc(hw,Code,wParam,lParam);
 }
void wPaint(HWND hw)
{

PAINTSTRUCT ps;
HDC Canvas=BeginPaint(hw,&ps);
SetTextColor(Canvas,RGB(0,0,255));

TextOut(Canvas,100,5,"HELLO WORLD!!!",14);
EndPaint(hw,&ps);
}
« Последнее редактирование: 13-09-2008 17:00 от Вад » Записан
yul4ick
Гость
« Ответ #1 : 13-09-2008 15:42 » 

Подскажите хоть идею реализации.....
Записан
RXL
Технический
Администратор

Online Online
Пол: Мужской

WWW
« Ответ #2 : 13-09-2008 15:52 » 

yul4ick, запоминаешь размер окна и размер шрифта в 100% масштабе, а при изменении размеров пересчитываешь размер шрифта и перестраиваешь все окно.
Правда, фигня получится с дробными размерами шрифта.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
yul4ick
Гость
« Ответ #3 : 13-09-2008 16:01 » 

RXL, а можно на примере(в виде куска кода),плз?а то пока не очень представляю как это вообще можно сделать.
Записан
RXL
Технический
Администратор

Online Online
Пол: Мужской

WWW
« Ответ #4 : 13-09-2008 16:06 » 

Новичек, мне это не интересно. Разбирайся сам. Идею я дал.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #5 : 13-09-2008 19:14 » 

Правда, фигня получится с дробными размерами шрифта.

А надо брать ближайший допустимый размер, вот и всё. Лучше всего взять какой-нить TTF.

Новичек, а какой код тебе нужен? Сначала создаёшь фонт с заданым размером одной из ф-ций CreateFont или CreateFontIndirect
http://msdn.microsoft.com/en-us/library/ms534214(VS.85).aspx
http://msdn.microsoft.com/en-us/library/ms534009(VS.85).aspx

Потом выбираешь его SelectFont
http://msdn.microsoft.com/en-us/library/ms534238.aspx

А матчасть учи (MSDN), без него никуда.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
AndreyCh
Интересующийся

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 15-09-2008 16:48 » new

С шагом 0,5 шрифты вполне масштабируются.
Я делал так - брал строку
Определял высоту и ширину  строки, определял отношение сторон окна ко всему этому (ширину к ширине ... и. т.д.) а потом с изменнением размера окна увеличивал или уменьшал шрифт/окно дискретами...
гы...
вспомнил физиономию заказчика, когда он уменьшил окно сильнее чем я расчитывал
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines