Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 17

Изменение цвета строки в Edit Box

28.04.2017, 10:30. Показов 1132. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Помогите пожалуйста, если сможете.
Нужно в поле EditBox менять цвет шрифта.

пример: поле заполняем его в ручную данными и по мере заполнения проверяем на правильность ввода (чтоб строка была не более 8 символов и были введены только нужные символа).
если в строке встречается ошибка(символов больше 8 или введен не тот символ) выводится сообщение и НУЖНО ЧТОБЫ ЭТА СТРОКА ВЫДЕЛИЛАСЬ А КОГДА ВСЕ ИСПРАВЯТ ЦВЕТ СТАЛ НОРМАЛЬНЫМ


C++
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
30
31
32
33
void ClenProgDlg::OnEnChangeEdit1()
{
    // TODO:  If this is a RICHEDIT control, the control will not
    // send this notification unless you override the CDialog::OnInitDialog()
    // function and call CRichEditCtrl().SetEventMask()
    // with the ENM_CHANGE flag ORed into the mask.
 
    // TODO:  Add your control notification handler code here
 
    CString strText;
    // Выгрузите каждую строку текста элемента управления редактирования.
    for (int i=0; i < m_ContrAdr.GetLineCount(); i++)
    {   
        
    
            int len = m_ContrAdr.LineLength(m_ContrAdr.LineIndex(i));//длина строки i: LineLength
            m_ContrAdr.GetLine(i, strText.GetBuffer(len), len); //извлечение строки GetLine 
            
 
            if (hexfl(strText, len)==0) //проверка строки на наличие ненужных нам символов
            {
                MessageBox(_T("Данные введены не корректно (введен не правильный символ)"), MB_OK);
                         //НАДО ЧТОБ ЦВЕТ МЕНЯЛСЯ ЗДЕСЬ
            }
 
            if (len > 8) //если строка длиннее 
            {
                MessageBox(_T("Данные введены не корректно(максимум 8 символов)\n"), MB_OK);
                        //НАДО ЧТОБ ЦВЕТ МЕНЯЛСЯ ЗДЕСЬ
            }
}
 
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.04.2017, 10:30
Ответы с готовыми решениями:

Изменения цвета в edit box
#include &lt;windows.h&gt; #include&lt;iostream&gt; #include&lt;cstring&gt; #include&lt;string.h&gt; #include &quot;resource.h&quot; #include&lt;Commctrl.h&gt; ...

Изменение цвета элемента Choice-Box в .css
Подскажите, пожалуйста, как сделать в .css так, что бы цвет фона и текста элемента из выпадающего списка Choice-Box при наведении на данный...

Изменение цвета части текста в edit
Пишу курсач - редактор html с подсветкой синтаксиса на чистом WinAPI . Готов текстовый редактор - edit на всю клиентскую область ....

1
Заблокирован
28.04.2017, 17:51
C++
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
// KittenGavDlg.cpp : implementation file
//
 
#include "stdafx.h"
#include "KittenGav.h"
#include "KittenGavDlg.h"
 
#define MAX_TEXT 7
 
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
 
/////////////////////////////////////////////////////////////////////////////
// CKittenGavDlg dialog
 
CKittenGavDlg::CKittenGavDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CKittenGavDlg::IDD, pParent)
{
    //{{AFX_DATA_INIT(CKittenGavDlg)
        // NOTE: the ClassWizard will add member initialization here
    //}}AFX_DATA_INIT
    // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
 
    m_bError = TRUE;
 
    m_clrBgnd = GetSysColor(COLOR_WINDOW);
    m_clrText = GetSysColor(COLOR_WINDOWTEXT);
 
    m_clrEditText = m_clrText;
    m_clrEditBgnd = m_clrBgnd;
 
    VERIFY(m_Brush.CreateSolidBrush(m_clrBgnd));
}
 
void CKittenGavDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CKittenGavDlg)
        // NOTE: the ClassWizard will add DDX and DDV calls here
    //}}AFX_DATA_MAP
}
 
BEGIN_MESSAGE_MAP(CKittenGavDlg, CDialog)
    //{{AFX_MSG_MAP(CKittenGavDlg)
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    //}}AFX_MSG_MAP
    ON_WM_CTLCOLOR()
    ON_EN_CHANGE(IDC_EDIT1, OnChangeEdit1)
END_MESSAGE_MAP()
 
HBRUSH CKittenGavDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
    switch( nCtlColor ) {
    case CTLCOLOR_STATIC:
        TCHAR Classname[255];
        GetClassName(pWnd->m_hWnd, Classname, 255);
        if(0 == lstrcmp(Classname, TRACKBAR_CLASS))
            return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
 
    case CTLCOLOR_EDIT:
    {
        if( IDC_EDIT1 == pWnd->GetDlgCtrlID() )
        {
            pDC->SetTextColor(m_clrEditText);
            pDC->SetBkColor(m_clrEditBgnd);
        }
        else
        {
            pDC->SetTextColor(m_clrText);
            pDC->SetBkColor(m_clrBgnd);
        }
    }
    return HBRUSH(m_Brush);
 
    case CTLCOLOR_BTN:
        pDC->SetBkMode(TRANSPARENT);
        return HBRUSH(m_Brush);
 
    default:
        break;
    }   
    return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
 
void CKittenGavDlg::OnChangeEdit1() 
{
    CEdit* pEdt=(CEdit*)GetDlgItem(IDC_EDIT1);
    if( pEdt )
    {
        CString str;
        pEdt->GetWindowText(str);
 
        BreakText(str);
 
        if( m_bError )
            Invalidate(FALSE);
        else
            Invalidate();
    }
}
 
void CKittenGavDlg::BreakText(const CString& str)
{
    CString strWork;
    int nLen = str.GetLength();
    if( nLen > MAX_TEXT )
    {
        m_bError = TRUE;
        m_clrEditText = RGB(0xFF, 0x00, 0x00);  //"Red"
        return;
    }
 
    for( int i = 0; i < nLen; ++i )
    {
        if( ( _T('\\') == str[i])   &&
            ( i+2 < nLen)           &&
            ( (_T('n') == str[i+1]) ||
            ( _T('r')  == str[i+1]) || (_T('t') == str[i+1]) ) )
        {
            switch( str[i+1] )
            {
            case _T('n'):
                strWork += _T('\n');
                break;
            case _T('r'):
                strWork += _T('\r');
                break;
            case _T('t'):
                strWork += _T('\t');
                break;
            }
            i += 1;
        }
        else
        {
            strWork += str[i];
        }
    }
 
    // Default color.
    m_clrEditText=m_clrText;
    m_clrEditBgnd=m_clrBgnd;
 
    m_strText = strWork;
    m_bError = FALSE;
}
 
/////////////////////////////////////////////////////////////////////////////
// CKittenGavDlg message handlers
 
BOOL CKittenGavDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
 
    // Set the icon for this dialog.  The framework does this automatically
    //  when the application's main window is not a dialog
    SetIcon(m_hIcon, TRUE);         // Set big icon
    SetIcon(m_hIcon, FALSE);        // Set small icon
    
    // TODO: Add extra initialization here
 
    CEdit* pEdt=(CEdit*)GetDlgItem(IDC_EDIT1);
    if( pEdt )
    {
        m_Font.CreatePointFont(132, _T("impact"), NULL);
        pEdt->SetFont(&m_Font, TRUE);
    }
    
    return TRUE;  // return TRUE  unless you set the focus to a control
}
 
// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.
 
void CKittenGavDlg::OnPaint() 
{
    if (IsIconic())
    {
        CPaintDC dc(this); // device context for painting
 
        SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
 
        // Center icon in client rectangle
        int cxIcon = GetSystemMetrics(SM_CXICON);
        int cyIcon = GetSystemMetrics(SM_CYICON);
        CRect rect;
        GetClientRect(&rect);
        int x = (rect.Width() - cxIcon + 1) / 2;
        int y = (rect.Height() - cyIcon + 1) / 2;
 
        // Draw the icon
        dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
        CDialog::OnPaint();
    }
}
 
// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CKittenGavDlg::OnQueryDragIcon()
{
    return (HCURSOR) m_hIcon;
}
KittenGavDlg.h
C++
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// KittenGavDlg.h : header file
//
 
#if !defined(AFX_KITTENGAVDLG_H__3A1A0FDA_1CBA_45A7_91A3_130299243601__INCLUDED_)
#define AFX_KITTENGAVDLG_H__3A1A0FDA_1CBA_45A7_91A3_130299243601__INCLUDED_
 
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
 
/////////////////////////////////////////////////////////////////////////////
// CKittenGavDlg dialog
 
class CKittenGavDlg : public CDialog
{
// Construction
public:
    CKittenGavDlg(CWnd* pParent = NULL);    // standard constructor
 
    void BreakText(const CString& str);
 
// Dialog Data
    //{{AFX_DATA(CKittenGavDlg)
    enum { IDD = IDD_KITTENGAV_DIALOG };
        // NOTE: the ClassWizard will add data members here
    //}}AFX_DATA
 
    // ClassWizard generated virtual function overrides
    //{{AFX_VIRTUAL(CKittenGavDlg)
    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
    //}}AFX_VIRTUAL
 
// Implementation
protected:
    HICON m_hIcon;
 
    CFont m_Font;
 
    BOOL m_bError;
    CString m_strText;
 
    CBrush m_Brush;
 
    COLORREF m_clrText;
    COLORREF m_clrBgnd;
 
    COLORREF m_clrEditText, m_clrEditBgnd;
 
    // Generated message map functions
    //{{AFX_MSG(CKittenGavDlg)
    virtual BOOL OnInitDialog();
    afx_msg void OnPaint();
    afx_msg HCURSOR OnQueryDragIcon();
    //}}AFX_MSG
    afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
    afx_msg void OnChangeEdit1();
    DECLARE_MESSAGE_MAP()
};
 
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
 
#endif // !defined(AFX_KITTENGAVDLG_H__3A1A0FDA_1CBA_45A7_91A3_130299243601__INCLUDED_)

KittenGav.zip

[/SPOILER]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.04.2017, 17:51
Помогаю со студенческими работами здесь

Изменение цвета шрифта в элементе Edit
Добрый день ! Подскажите пожалуйста, какое нужно послать сообщение элементу EDIT чтобы изменить цвет шрифта. Для изменение самого...

Оперативное изменение цвета фона и цвета символов строки.
я уже задала строку,вывела на экран в виде бесконечно бегущей строки. осталось сделать оперативное изменение цвета фона и цвета символов...

Изменение цвета строки
Добрый день. Подскажите пожалуйста как при внесении любой информации в ячейку вся строка меняла цвет (зелёный и крассный интерессуют...

Изменение цвета строки!
доброго времени суток! вот условие задачи: Написать программу “Прыгающий шарик”. После запуска программы на экране должна отображаться...

Изменение цвета строки
Допустим с клавиатуры вводится строка любая,потом она перемещается в центр экрана и 1-е 3 буквы становятся зеленым цветом. Заранее спасибо


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru