Форум: "Основная";
Текущий архив: 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