2 / 2 / 3
Регистрация: 06.01.2018
Сообщений: 77
1

Изменить шрифт формы через подключенный dll

13.12.2019, 11:56. Показов 1543. Ответов 0

Author24 — интернет-сервис помощи студентам
Общее задание - по кнопке в форме менять размер шрифта, и его стиль (см фото формы)
Сделать это нужно не в самом коде формы, а в стороннем подключенном dll
Как я это делаю (мне нужно кнопкой переключать обычный стиль и подчеркнутый)

Создаю 2 новых шрифта, и далее, через конвертер, получаю их в char*.
C++
1
2
3
4
5
6
7
8
9
FontRegular = gcnew System::Drawing::Font(L"Microsoft Sans Serif", current_size, FontStyle::Regular);
        FontUnderline = gcnew System::Drawing::Font(L"Microsoft Sans Serif", current_size, FontStyle::Underline);
        /*Конвертируем шрифты в String^*/
        cvt = gcnew FontConverter();
        RegularString = cvt->ConvertToString(FontRegular);
        UnderlineString = cvt->ConvertToString(FontUnderline);
        /*Преобразуем в char для работы в dll*/
        reg = SystemStringToChar(RegularString);
        und = SystemStringToChar(UnderlineString);
Далее подаю в функцию с ключом (она уже в dll файле)и возвращаю нужный мне стиль в форму
C++
1
2
3
4
5
6
char * Change_Style(char* current, char* reg, char* und){ //исходник обычного, подчеркнутого, и номер текущего
    if (strcmp(current, reg) == 0) {
        return und;
    }
    else return reg;
}
после чего преобразовываю это уже в форме, т.е. меняю font текстбокса
C++
1
2
System::Drawing::Font^ Font1 = (System::Drawing::Font^)cvt->ConvertFromString(CharToSystemString(Change_Style(current_style(), reg, und)));
        richTextBox1->Font = Font1;
Но, по моему, это не совсем правильно, и у меня встает вопрос, можно ли сделать организацию строки шрифта непосредственно в функции dll, чтобы по определнным ключам формировать char* строку шрифта непосредственно в dll, а затем передавать ее в форму и изменять с помощью конвертации там.

я пробовал так:
C++
1
2
std::string font = "Microsoft Sans Serif; " + int(current_size) + ",75pt; style=Underline";
    return const_cast<char*>(font.c_str());
не получается, хотя при конвертации оригинального шрифта в форме
C++
1
2
cvt = gcnew FontConverter();
UnderlineString = cvt->ConvertToString(FontUnderline);
строка char* имеет такой же вид
Миниатюры
Изменить шрифт формы через подключенный dll  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.12.2019, 11:56
Ответы с готовыми решениями:

Нужно изменить цвет шрифта и сам шрифт в DLL
Привет Гуру C++, очень нужна помощь, сам не разобрался что и как по сути. Проблема в том что есть...

Изменить содержание тега, которое получает браузер через javascript код, подключенный с другого сайта
На сайте есть javascript код, который при подключении выводит длинный ряд html тегов, можно сказать...

Не видит подключенный шрифт
Всем привет! Вроде уже не новичок, но столкнулся с проблемой: подключаю шрифт на сайте из файла, но...

Как заставить подключенный шрифт работать в ie ?
Вобщем чтобы не расписывать всю проблему, предлагаю взглянуть на саму реальзицию подключения шрифта...

0
13.12.2019, 11:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2019, 11:56
Помогаю со студенческими работами здесь

Как изменить прозрачность фона формы через через Expresion Blend
Пытаюсь отредактировать фон в форме через Expresion Blend однако как я не пытаюсь сделать его...

Не отображается подключённый шрифт в хроме и мозилле но отображается в опере
Здравсвуйте не отображается шрифт подключённый к сайту в хроме и мозилле но отображается в опере...

WinSock - подключение к Серверу TCP (подключенный через РОУТЕР) через интернет
Всем привет! Я не ожидаю честно говоря, что я решу данную проблему.. Но вопрос вследующем: ...

Раздача интернета через WI-FI роутер через подключенный к ПК USB модем
Добрый день всем! прошу помощи, сам не глупый, но проблему решить не могу. Имею ПК, к нему...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru