All streams
Search
Write a publication
Pull to refresh
-5
0
Send message
ноутбук нужно обработать специальным софтом

Упорно читается как «ноутбук нужно обработать специальным дустом».
Падающие снежинки

Надо просто поставить лазеры помощней.
Чайки

Ещё мощней.
Асоциальная сеть. Мне нравилось туда заходить — никого нет, не надо ни с кем общаться.
Кстати, совершенно классический DDoS описан в одном из вариантов «Сказки о тройке». Кто не читал, настоятельно рекомендую. Сильно отличается от более известного варианта, и концовка куда более интересная (в отличии от «Deus ex machina» в более широко известной версии).
— Я же просил построить мне дом! А вы вкопали в землю фанерку, на которой изобразили силуэт домика!
— Это называется «material design». Сейчас так модно. Вы только посмотрите, какую восхитительную, реалистичную тень отбрасывает эта фанерка!
Ну вот зачем вы это написали? Я поискал в гугле «кошачье бельё» и залип.
А если ещё при этом сказать: «Моя цель — космос»… Всё сходится.
Интересно. Да, так получается одинаковая ширина при любых значениях высоты (до 32 как минимум). К сожалению, мне надо было задавать размер ячейки шрифта (для этого первый параметр должен быть положительным), а тут указывается размер символа. Но всё равно интересно, почему при размере шрифта 16 (по моему способу) и при 9 (по вашему, через MulDiv) шрифты получаются визуально одной высоты, но вот ширина у них разная.
См. выше пример. Дефолтный моноширинный шрифт.
Couriew New достаточно моноширинный?
Заголовок спойлера
#include <windows.h>

const LPSTR text=TEXT("The quick brown fox jumps over the lazy dog");

void main()
{
    HFONT reg=CreateFont(16,
                         0,
                         0,
                         0,
                         FW_NORMAL,
                         FALSE,
                         FALSE,
                         FALSE,
                         DEFAULT_CHARSET,
                         OUT_TT_PRECIS,
                         CLIP_DEFAULT_PRECIS,
                         DEFAULT_QUALITY,
                         DEFAULT_PITCH|FF_DONTCARE,
                         TEXT("Courier New")
                         );
    HFONT bld=CreateFont(16,
                         0,
                         0,
                         0,
                         FW_BOLD,
                         FALSE,
                         FALSE,
                         FALSE,
                         DEFAULT_CHARSET,
                         OUT_TT_PRECIS,
                         CLIP_DEFAULT_PRECIS,
                         DEFAULT_QUALITY,
                         DEFAULT_PITCH|FF_DONTCARE,
                         TEXT("Courier New")
                         );
    HDC dc=CreateCompatibleDC(GetDC(NULL));
    SIZE sz;
    SelectObject(dc, reg);
    GetTextExtentPoint32(dc, text, wcslen(text), &sz);
    printf("Regular: %d\n", sz.cx);
    SelectObject(dc, bld);
    GetTextExtentPoint32(dc, text, wcslen(text), &sz);
    printf("Bold: %d\n", sz.cx);
}


Вывод:
Regular: 176
Bold: 154

Только непонятно, почему bold у́же получился.
А после того, как мы разметили текст, нужно ещё нарисовать его на экране. И вот тут тоже могут вылезать совершенно неожиданные грабли. Например: отрисовываем мы текст моноширинным шрифтом. Часть regular, часть bold, а часть italic. Естественно, хочется, чтобы буковки, вне зависимости от стиля, рисовались правильными колоночками, одна под другой. И вот тут внезапно выясняется, что ширина символов зависит от написания, и символы bold'ом будут шире, чем regular! Для моноширинного шрифта, ага. И приходится вставлять жуткие костыли, растягивая одни строки и сжимая другие, чтобы на экране всё было красиво и аккуратно. А ведь есть ещё дивный мир RTL языков (right-to-left — арабский, иврит и т.д.), которые тоже кто-то может захотеть использовать (хотя бы для комментариев).
И даже не обязательно долго думать — если банкомат сначала выдаёт деньги, а потом карточку, то можно запросто схватить деньги и уйти, забыв карту. Сам так пару раз накалывался, пока не перешёл в Сбер. Тут сначала выдают карту, а потом деньги. Не очень удобно, если нужно потом сделать что-то ещё, зато не забудешь карту.
На Windows как раз понятно — там так представляется юникодный текст, и при отрисовке не нужно постоянно перекодировать из utf8 в utf16.
в чем профит в случае «поставить диспенсер бумполотенец вместо ветродуя?»

У нас при обсуждении с начальством этой же идеи на вопрос «Чем не устраивает ветродуй, руки же сушить можно» кто-то резонно ответил: «А лицо?». Этого довода хватило, чтобы поставили диспенсеры.
Круто. Взяли и починили один бит. Прикладная некромантия. Только читать было тяжеловато из-за кучи сносок; лучше бы их прямо в текст вставили.
«Чтобы выйти из зоны комфорта, нужно сначала войти в зону комфорта, а у нас на это денег нет» ©
Пятнадцать пиров на раздачу мертвеца.

Information

Rating
Does not participate
Registered
Activity