|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.06.2020, 10:31 | #1 |
Форумчанин
Регистрация: 19.05.2009
Сообщений: 153
|
Как сделать текст в некоторых клетках в таблице (CListCtrl) жирным?
Есть таблица m_IDC_LIST1 типа CListCtrl (точнее говоря, тип--его потомок). Размером, допустим, 10 на 10.
И как мне сделать текст в некоторых клетках этой таблице (например, в клетке с номером (3,4) ) жирным? И чтобы этот жирный текст в этой клетке соблюдался при прокрутке? Я понимаю, что для этого придётся создавать класс-потомок от CListCtrl, но как это сделать? Что нужно будет написать в этом классе-потомке? |
05.06.2020, 13:52 | #2 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 960
|
erslgoeirjh, субклассить, затем рисовать вручную CListCtrl::DrawItem
возможно, проканает такой трюк - доставать hDC из DRAWITEMSTRUCT , вытаскивать текущий шрифт, менять его, затем вызывать родительский обработчик. После вызова нужно вернуть шрифт, скорее всего, обратно. Но, может, и не потребуется возвращать - надо экспериментировать если не проканает - тогда в этом обработчике выводить текст вручную через DrawState |
11.06.2020, 17:55 | #3 | |
Форумчанин
Регистрация: 19.05.2009
Сообщений: 153
|
Я создал класс CMyListCtrl4 как потомок класса CListCtrl и поместил его .-файл и .cpp-файл в моё решение.
Файл MyListCtrl4.h : Код:
Код:
В результате при компиляции у меня выдаются следующие ошибки: Цитата:
Среда разработки--Visual Studio 2010. |
|
11.06.2020, 19:29 | #4 | |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 960
|
erslgoeirjh, поработаю компилятором, но только один раз ))
1) пропущено закрытие для #ifndef Цитата:
Код:
#include <windows.h> 3) пропущены круглые скобки END_MESSAGE_MAP() 4) опечатка pNHMDR а также пропущены скобки reinterpret_cast<NMLVCUSTOMDRAW*>(pNHMDR); 5) читать доку по WideCharToMultiByte 6) неправильно поставлена скобка if (strcmp(s1,"Дат")==0)||(strcmp(s1,"НИП")==0)||(strcmp(s1 ,"---")==0) Последний раз редактировалось Алексей1153; 11.06.2020 в 21:14. |
|
11.06.2020, 21:08 | #5 |
Форумчанин
Регистрация: 19.05.2009
Сообщений: 153
|
Спасибо, всё откомпилировалось!
|
12.06.2020, 12:40 | #6 |
Форумчанин
Регистрация: 19.05.2009
Сообщений: 153
|
После исправления ошибок программа компилируется и запускается.
Но как мне получить текст в текущей клетке таблицы внутри функции OnCustomDraw? Этот текст потом у меня обрабатывается. |
12.06.2020, 18:12 | #7 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 960
|
erslgoeirjh,
описание структуры https://docs.microsoft.com/en-us/win...nmlvcustomdraw в ней есть следующая структура https://docs.microsoft.com/en-us/win...l-nmcustomdraw и как это всё использовать (не знаю, под чем они там были, когда это придумывали :D ) http://forums.codeguru.com/showthrea...l-OnCustomDraw Код:
|
12.06.2020, 19:49 | #8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Давайте не будем путать CListCtrl и CListView.
http://forums.codeguru.com/showthrea...)-of-CListCtrl |
13.06.2020, 13:32 | #9 | ||
Форумчанин
Регистрация: 19.05.2009
Сообщений: 153
|
Я написал:
Код:
Внутри функции OnCustomDraw считывается текст из клетки таблицы в переменную mystr, потом текст из переменной mystr благополучно преобразуется в переменную pzText, но потом в результате выполнения функции WideCharToMultiByte у меня в строке s вместо нормального текста получается какая-то абракадабра. То есть у меня было Цитата:
Цитата:
Как мне исправить эту ошибку? Как сделать так, чтобы преобразование в строку s стало правильным? |
||
13.06.2020, 16:43 | #10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Текст в клетках таблицы не отображается по центру | erslgoeirjh | Visual C++ | 3 | 07.03.2019 12:48 |
Как сделать заголовок из двух строк в таблице (CListCtrl) ? | erslgoeirjh | Visual C++ | 0 | 26.02.2019 16:05 |
Вопрос по столбцам в таблице (CListCtrl) | erslgoeirjh | Visual C++ | 1 | 12.02.2019 17:38 |
Как изменить высоту строки в таблице (CListCtrl) | erslgoeirjh | Visual C++ | 1 | 15.05.2018 19:41 |
Как выделить в таблице (CListCtrl) всю строку, но только одну? | erslgoeirjh | Visual C++ | 1 | 15.11.2016 16:02 |