Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.03;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.02 c
1-7921
Invega
2002-09-22 18:06
2002.10.03
телефоны дозвона


14-8110
Ketmar
2002-09-05 09:57
2002.10.03
где менять цвет текста в Object Inspector е?


3-7883
BlackTiger
2002-09-14 10:26
2002.10.03
КАК: Сортировка грида, не трогая источника данных.


1-7988
users
2002-09-20 02:08
2002.10.03
Написание собственных обработчиков событий .... Плиэ...


1-7963
Бильврёст
2002-09-24 10:11
2002.10.03
Проблемы с рекурсией и возвратом управления в нужную точку.