Неклиентские метрики Windows API для отдельного окна

Мне очень нужен доступ к шрифту заголовка окна с индивидуальной обложкой/стилем в Win7 и Win8. Таким образом, использование стандартных методов получения NONCLIENTMETRIC и SPI_GETNONCLIENTMETRICS API Windows не работает вообще, поскольку они возвращают общие значения по умолчанию (см. здесь Получить размер текста заголовка WINAPI например)

Любая идея, как я могу получить доступ к неклиентским метрикам и шрифтам (лучше всего типа LOGFONT) в этом случае? Я просканировал stackoverflow и безуспешно искал поисковые машины и сайты MSDN...


person gilgamash    schedule 21.04.2015    source источник
comment
У вас нет оснований ожидать получения этой информации. Если приложение само закрашивает область NC, то ему не нужно никому сообщать, какой шрифт оно использовало.   -  person David Heffernan    schedule 21.04.2015
comment
Привет, Дэвид. Спасибо за твой ответ. Предположим, однако, что приложение использует стандартный Windows API для настройки шрифтов NC и т. д. Существует ли вообще какая-либо функция API для получения метрик, потенциально возвращающая nullptr, если она не может обработать информацию или ее нет?   -  person gilgamash    schedule 22.04.2015
comment
Что это за стандартный API?   -  person David Heffernan    schedule 22.04.2015
comment
Что ж, API Windows: msdn.microsoft .com/en-us/library/windows/desktop/   -  person gilgamash    schedule 22.04.2015
comment
Какую функцию вызывает приложение, которое устанавливает шрифты ЧПУ и т. д.? Можем ли мы сначала прояснить вопрос, который вы задаете.   -  person David Heffernan    schedule 22.04.2015
comment
Конечно: такие как CreatePointFont, CreatePointFontIndirect и SetFont (на самом деле все они объявлены в afxwin.h).   -  person gilgamash    schedule 22.04.2015
comment
Это не функции Win32 API. Это МФЦ. Я не уверен, что вы действительно совершенно ясно представляете себе, как все это работает. Может быть, нам стоит вернуться к началу. Какова реальная проблема, которую вы пытаетесь решить? Давайте начнем с этого, а не с предложенного вами решения, которое, как я подозреваю, не является правильным решением.   -  person David Heffernan    schedule 22.04.2015
comment
Давайте продолжим обсуждение в чате.   -  person gilgamash    schedule 22.04.2015