Поиск:

Ответ в темуСоздание новой темы Создание опроса
> размещение char* на CStatic 
:(
    Опции темы
AxNe0
Дата 15.5.2006, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 24.4.2006
Где: St. Petersburg

Репутация: нет
Всего: 5



Привет всем!
Есть вопрос: Как можно определить, полностью ли помещается переменная типа char* на элементе CStatic с известной шириной?
Можно ли это узнать, не создавая экземпляр CStatic'a? 


--------------------
SCJP 6, SCBCD 5, OCEWSD 6
blog
PM ICQ Skype   Вверх
Romikgy
Дата 15.5.2006, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 2
Всего: 146



GetTextExtentPoint32 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
AxNe0
Дата 15.5.2006, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 24.4.2006
Где: St. Petersburg

Репутация: нет
Всего: 5



А как дескриптор контекста устройства  "HDC hdc" применить к монитору? 

Это сообщение отредактировал(а) AxNe0 - 15.5.2006, 12:34


--------------------
SCJP 6, SCBCD 5, OCEWSD 6
blog
PM ICQ Skype   Вверх
Romikgy
Дата 15.5.2006, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 2
Всего: 146



Код

The GetTextExtentPoint32 function uses the currently selected font to compute the dimensions of the string. The width and height, in logical units, are computed without considering any clipping. 


DC того на чем хошь писать , т.к. фонт может быть разным на разных окнах 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
AxNe0
Дата 15.5.2006, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 24.4.2006
Где: St. Petersburg

Репутация: нет
Всего: 5



А можно примерчик?  smile  


--------------------
SCJP 6, SCBCD 5, OCEWSD 6
blog
PM ICQ Skype   Вверх
Earnest
Дата 15.5.2006, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



К монитору не стОит... У кого ты шрифт спрашивать будешь? Обычно, что по-умолчанию установлен какой-нибудь толсто-жирный...
А вообще делается так:
Код

CWnd* pWnd = ... // Лучше, если это будет парент потенциального статика, тогда фонт точно будет правильный
CClientDC dc(pWnd);
dc.SelectObject(pWnd->GetFont());   // здесь можно установить конкретный шрифт
CSize sz = dc.GetTextExtent(pstr,strlen(pstr));

И вообще, перенесу-ка я тебя в MFC... 


--------------------
...
PM   Вверх
AxNe0
Дата 15.5.2006, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 24.4.2006
Где: St. Petersburg

Репутация: нет
Всего: 5



Шрифт у CStatic'a. А можно комментарии на русском? "Парент потенциального статика..."  smile  


--------------------
SCJP 6, SCBCD 5, OCEWSD 6
blog
PM ICQ Skype   Вверх
Earnest
Дата 15.5.2006, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Парент == родительское окно, диалог например.
Твоя задача ведь не висит в воздухе?
Ты же сам спрашивал о статике. А если уж ресь пошла о статиках, то по-умолчанию они используют шрифт своего родителя. 


--------------------
...
PM   Вверх
Romikgy
Дата 16.5.2006, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 2
Всего: 146



Имхо так тоже можно
Код

CClientDC dc(pWnd);    

CSize sz = dc.GetTextExtent(pstr,strlen(pstr));
 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Earnest
Дата 16.5.2006, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Можно, только какой фонт будет использоваться при вычислении? Шрифт-то устанавливается только при прорисовке. 


--------------------
...
PM   Вверх
takedo
Дата 18.5.2006, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 1.6.2005

Репутация: нет
Всего: 3



так то статик это CButton, то есть зная шрифт ты можешь узнать и размеры прямоугольника кнопки и сравнить.
или я чего упустил?  


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
Earnest
Дата 18.5.2006, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Цитата(takedo @  18.5.2006,  14:48 Найти цитируемый пост)
так то статик это CButton

????
Цитата(takedo @  18.5.2006,  14:48 Найти цитируемый пост)
зная шрифт ты можешь узнать ... 

В том-то и вопрос, что шрифт нужно у кого-нибудь спросить.
 


--------------------
...
PM   Вверх
takedo
Дата 18.5.2006, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 1.6.2005

Репутация: нет
Всего: 3



да я к тому, что поначалу я пытался писать так: CStatic* st = (CStatic*)GetDlgItem() и долго удивлялся чего не так smile, все мне больше по теме нечего сказать smile  


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0638 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.