Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.03;
Скачать: [xml.tar.bz2];

Вниз

AddFontResource   Найти похожие ветки 

 
AL2002   (2002-09-17 17:40) [0]

Сабж, даже без WM_FONTCHANGE, делает фонт доступным всем прогам, а мне нужно, чтоб он был доступен только моей программе.
Что делать?


 
MegaBass   (2002-09-17 18:06) [1]

Может быть енто наворот но можно попробовать через
var
oldFont, myfont:hfont;
begin
myfont := CreateFontIndirect(...);
oldfont := SelectObject(GetDC(Handle), myfont);
//do something
SelectObject(GetDC(Handle), oldfont);
end;


 
AL2002   (2002-09-17 18:12) [2]

Не-не. Не то.
Я тут долго ковырялся, пока смог имена неустановленных шрифтов повыдёргивать. Не проканает.

И ещё.
Сабж делает фонт доступным всем прогам после команды
SendMessage ( HWND_BROADCAST, WM_FONTCHANGE, 0, 0 );
даже если она была самая первая и один раз.

HWND_BROADCAST - это все TopLevel windows.
А как послать это сообщение только моей форме?
Если через хендл, то какой хендл вместо HWND_BROADCAST писать?
Поскажите.


 
Ketmar   (2002-09-18 10:00) [3]

ну и пишите себе хэндл вашего приложения или формы (Application.Handle или Form1.Handle соответственно).

Satanas Nobiscum! 18-Sep-XXXVII A.S.


 
AL2002   (2002-09-18 11:40) [4]

SendMessage ( Form1.Handle, WM_FONTCHANGE, 0, 0 );
Так, что ли?


 
Ketmar   (2002-09-18 12:38) [5]

примерно так. не понятно, зачем вам такой хитрый финт,- но если надо - пожалуйста %-)

Satanas Nobiscum! 18-Sep-XXXVII A.S.


 
AL2002   (2002-09-18 12:52) [6]

> примерно так.
А как не примерно, а точно?

>не понятно, зачем вам такой хитрый финт,- но если надо - пожалуйста %-)
Когда делаю HWND_BROADCAST — скачут все приложения. Ну и замедляется, конечно. И шрифты, физически не установленные, становятся доступными. А это не есть хорошо. Вот.

То как послать сообщение именно текущей форме? А то я такие вещи, как хендлы, вообще не понимаю. Подскажете?


 
Ketmar   (2002-09-18 14:09) [7]

собственно, в точности так, как вы написали выше. или все же посылайте так:
SendMessage(Application.Handle, WM_FONTCHANGE, 0, 0);
мне кажется, что так идеологически правильней и выдержанней. %-) хотя - фиг его знает. попробуйте оба способа. что заработает, то и используйте %-)

Satanas Nobiscum! 18-Sep-XXXVII A.S.


 
MegaBass   (2002-09-18 14:16) [8]

у каждой формы (контрола) есть метод Perform
по нему "мессидж" должен обработать только он.
ну а если не подойдет то вместо
SendMessage(...) лучше использовать PostMessage Виснуть ничего не будет.
Хендлы есть у каждого оконного контрола и они уникальные.


 
AL2002   (2002-09-18 14:17) [9]

Ketmar © (18.09.02 14:09)
Спас.


 
Рыжик   (2002-09-18 15:41) [10]

Можно вместо AddFontResource использовать AddFontResourceEx c FR_PRIVATE вторым параметром.

FR_PRIVATE Specifies that only the process that called the AddFontResourceEx function can use this font. When the font name matches a public font, the private font will be chosen. When the process terminates, the system will remove all fonts installed by the process with the AddFontResourceEx function


 
AL2002   (2002-09-19 15:04) [11]

>Рыжик © (18.09.02 15:41)
А вот это вариант.

Рыжик, ты где такой хелп достала?


 
AL2002   (2002-09-19 21:44) [12]

Вот такие функции я отрыл:
AddFontResourceA, AddFontResourceW, AddFontResourceEx, AddFontResourceExA, AddFontResourceExW

В хелпе — дуля с маком. Где взять описания параметров?


 
MBo   (2002-09-19 21:56) [13]

в MSDN


 
AL2002   (2002-09-20 10:31) [14]

>MBo © (19.09.02 21:56)
>в MSDN
А это что такое?




 
Рыжик   (2002-09-20 13:59) [15]

Вот здесь msdn-online
http://msdn.microsoft.com/



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.03;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
14-8175
kolobok11
2002-09-09 08:23
2002.10.03
Винты, винты, винты ...


3-7801
karaf
2002-09-11 19:11
2002.10.03
TADOCommand.Cancel ?


1-7928
R_F$29{n}xp
2002-09-20 21:25
2002.10.03
Ограничение Inrenet Explorera!!!


1-8028
Porolonchick
2002-09-20 16:07
2002.10.03
TreeView.


3-7835
Radimir
2002-09-12 14:59
2002.10.03
динамический SQL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский