powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / размер и цвет текста
18 сообщений из 143, страница 6 из 6
размер и цвет текста
    #39168966
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kab18 Тут другая проблема, приведенный тобой код по закраске текста не закрашивает кнопку, хотя статик закрашивает.

Кнопку закрасить нужен другой программный код. Для меня эта задача решена лет 10 взад.
Мне нужно закрасить цвет текста статика.
Статик почему-то вообще невидим становится после того как его определил как control.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39168977
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я имел ввиду текст в кнопке. Судя по этому код должен быть одинаковым.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39169012
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уря-я-я!!!
Все получилось благодаря //DDX_Control(pDX, IDC_TEXT, m_Text);
...
Рейтинг: 0 / 0
размер и цвет текста
    #39169018
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для закраски текста я так понял DDX не нужен, достаточно приведенного тобой кода:
Код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
//h
class CTextDlg : public CDialog
{
// Construction
public:
CTextDlg(CWnd* pParent = NULL);	// standard constructor
protected:
HICON m_hIcon;
CColorStatic m_Text;
virtual BOOL OnInitDialog();
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);

};
//cpp
BEGIN_MESSAGE_MAP(CTextDlg, CDialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_CTLCOLOR()
END_MESSAGE_MAP()

HBRUSH CTextDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// можно добавить: if ( nCtlColor == CTLCOLOR_STATIC ) 
if ( pWnd->GetDlgCtrlID() == IDC_TEXT ) {
pDC->SetTextColor(0xFF);
}
return hbr;
}



CColorStatic::CColorStatic()
{
m_TextColor=RGB(11,1,111);
} Удалить

protected:
HICON m_hIcon;
CColorStatic m_Text; Удалить
// Generated message map functions
//{{AFX_CTextDlg
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};

void CTextDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTextDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
DDX_Control(pDX, IDC_TEXT, m_Text);
//}}AFX_DATA_MAP
} Удалить
...
Рейтинг: 0 / 0
размер и цвет текста
    #39169023
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теперь давай думать как закрасить текст в кнопке, а то че то не закрашивает.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39169034
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kab18Теперь давай думать как закрасить текст в кнопке, а то че то не закрашивает.
А мне не надо думать. У меня кнопка закрашена.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39169037
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kab18Для закраски текста я так понял DDX не нужен, достаточно приведенного тобой кода
Пример я взял с http://www.codeproject.com/Articles/1035/Using-colors-in-CEdit-and-CStatic
Здесь этот DDX появился. Хотя у меня изначально вызывало удивление, что статик становился control.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39169040
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Достаточно было убрать DDX и все у меня появилось.
Вот что значит нельзя пользоваться чужими примерами. В них могут быть ошибки.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39169054
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
//h:
class CMyDlg : public CDialog
{
...
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
...
};
//cpp:
BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
...
ON_WM_CTLCOLOR()
...
END_MESSAGE_MAP()
HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// можно добавить: if ( nCtlColor == CTLCOLOR_STATIC )
if ( pWnd->GetDlgCtrlID() == IDC_MY_STATIC ) {
pDC->SetTextColor(0xFF);
}
return hbr;
}
...
Рейтинг: 0 / 0
размер и цвет текста
    #39169129
VestaBesta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А через opengl можно работать?
...
Рейтинг: 0 / 0
размер и цвет текста
    #39169165
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kab18Теперь давай думать как закрасить текст в кнопке, а то че то не закрашивает.Во-первых, надо использовать WM_CTLCOLORBTN, а во-вторых, оно всё равно не работает, потому что так задумано. Для кнопок и кнопкоподобных контролов (bs_pushlike) всегда используются системные цвета, wm_ctlcolorbtn "влияет" только на ownerdraw-кнопки.

И интересно, как DDX мешал покраске статика...
...
Рейтинг: 0 / 0
размер и цвет текста
    #39169166
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VestaBestaА через opengl можно работать? Вопрос какой-то абстрактный. Что конкретно через opengl делать хочется?
...
Рейтинг: 0 / 0
размер и цвет текста
    #39169192
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbkab18Теперь давай думать как закрасить текст в кнопке, а то че то не закрашивает.Во-первых, надо использовать WM_CTLCOLORBTN, а во-вторых, оно всё равно не работает, потому что так задумано. Для кнопок и кнопкоподобных контролов (bs_pushlike) всегда используются системные цвета, wm_ctlcolorbtn "влияет" только на ownerdraw-кнопки.

И интересно, как DDX мешал покраске статика...
DDX мешать не может, а DDX_Control (pDX, IDC_TEXT, m_Text); вполне себе мешал.
Зачем статик делается управляющим, т.е. control ?
...
Рейтинг: 0 / 0
размер и цвет текста
    #39169193
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VestaBestaА через opengl можно работать?
Открытая графическая библиотека позволяет получать всевдо-3D.
Я с ней давно работаю. Но в рассмотренных здесь мною случаях она совсем не нужна.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39169194
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbkab18Теперь давай думать как закрасить текст в кнопке, а то че то не закрашивает.Во-первых, надо использовать WM_CTLCOLORBTN, а во-вторых, оно всё равно не работает, потому что так задумано. Для кнопок и кнопкоподобных контролов (bs_pushlike) всегда используются системные цвета, wm_ctlcolorbtn "влияет" только на ownerdraw-кнопки.

И интересно, как DDX мешал покраске статика...
Для кнопок надо подключать colorbtn.h и colorbtn.cpp и используется:
VERIFY(m_btnOK.Attach(IDC_BUTTON7, this, CYAN, BLUE, DKCYAN));
...
Рейтинг: 0 / 0
размер и цвет текста
    #39169299
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛизоблюдЗачем статик делается управляющим, т.е. control ?
Не, эта штука просто гоняет данные из класса в контрол. Т.е. DDX привязывает данные к элементам окон. Так бы тебе пришлось, в случае, если юзер что-то поменял на диалоге, самому из контрола доставать данные, потом их в класс запихивать. И наоборот, если ты чего-то в классе поменял, нужно это положить в контрол. DDX делает всё это за тебя. Немного криво и неудобно ( а я запилил свою версию DDX-а, без mfc, без UpdateData, с привязкой нескольких контролов к одному компоненту, с чтением/записью из/в реестр/инифайл ), но реально экономит время!

Скорее всего DDX у тебя как раз берёт данные из класса (там пусто) и пишет в контрол, поэтому там пустая строчка.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39169950
Фотография Лизоблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMb Скорее всего DDX у тебя как раз берёт данные из класса (там пусто) и пишет в контрол, поэтому там пустая строчка.
Как только убрал DDX_Control(pDX, IDC_TEXT, m_Text);
сразу все зафурыкало.
...
Рейтинг: 0 / 0
размер и цвет текста
    #39170963
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лизоблюд, почитай, как DDX-ом правильно пользоваться.
Скорее всего, тебе надо было в начале сказать m_Text = "text", и это было бы в статике.
...
Рейтинг: 0 / 0
18 сообщений из 143, страница 6 из 6
Форумы / C++ [игнор отключен] [закрыт для гостей] / размер и цвет текста
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]