Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
26 / 26 / 7
Регистрация: 18.11.2011
Сообщений: 266

Ограничение на ввод данных в Edit Box

28.06.2012, 16:33. Показов 3933. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всем доброго времени суток, вопрос заключается в том как ограничит элемент управленеи Edit Box на ввод даных , тоесть сделат ьтак чтобы внего нельзя было их вводить но также можно было выделять копирывать итд Язык С++
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.06.2012, 16:33
Ответы с готовыми решениями:

Ограничение ввода по количеству символов в Edit box
Доброго времени суток! Подскажите пожалуйста, как в edit box сделать ограничение по количеству символов. То есть, мне нужно, сто бы в...

Автоматический ввод текста в edit box
Есть некоторое приложение, в котором нажимая на кнопку получаем модальное окно с просьбой в одно текстовое поле ввести имя пользователя, а...

Ограничение на ввод в Edit
Здравствуйте,задача такая, в элитная вводятся только числа,"backspace" и "-"(для отрицательных чисел), ну и запятая, но стоит ограничение...

13
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
28.06.2012, 16:49
используй стиль окна ES_READONLY
подробности тут http://msdn.microsoft.com/en-u... s.85).aspx
1
26 / 26 / 7
Регистрация: 18.11.2011
Сообщений: 266
28.06.2012, 16:59  [ТС]
Есть небольшая проблемка цвет фона серый как бы я мог сам регулирова цвет фона а что не мало важно шрифт в Edit Box ?
0
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
28.06.2012, 17:01
ну шрифт можно поменять,а вот насчёт цвета не знаю,наверное это не исправить,так как пользователь должен видеть,что текст только для чтения
0
26 / 26 / 7
Регистрация: 18.11.2011
Сообщений: 266
28.06.2012, 17:04  [ТС]
Цитата Сообщение от alexey31415 Посмотреть сообщение
ну шрифт можно поменять
НУ тогда дайте пожалуйста инфу отом как шрифт поменять .
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
28.06.2012, 17:09
Цитата Сообщение от alexey31415 Посмотреть сообщение
а вот насчёт цвета не знаю,наверное это не исправить
Очень мало такого, что невозможно исправить. Цвет возвращается обработкой WM_CTLCOLORSTATIC (просто верни GetStockObject(какую_там_тебе_кисть_нужн о) для своего эдита), такого цвета и будет фон.
1
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
28.06.2012, 17:32
Цитата Сообщение от UI Посмотреть сообщение
WM_CTLCOLORSTATIC
это для элементов управления класса static
Цитата Сообщение от UI Посмотреть сообщение
просто верни GetStockObject(какую_там_тебе_кисть_нужн о) для своего эдита), такого цвета и будет фон
а разве используется описатель контекста устройства?(это если использовать дефолтный шрифт)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
28.06.2012, 18:54
alexey31415, ты бы проверил, чем спорить...
A static control, or an edit control that is read-only or disabled, sends the WM_CTLCOLORSTATIC message to its parent window when the control is about to be drawn.
(из MSDN)
0
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
28.06.2012, 20:41
Создание шрифта
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
LOGFONT     lf;
TEXTMETRIC  tm;
HDC hdc;
HFONT       hFont;
 
GetTextMetrics(hdc, &tm);
 
lf.lfHeight = -tm.tmHeight;
    lf.lfWidth = 0;
    lf.lfEscapement = 0;
    lf.lfOrientation = 0;
    lf.lfWeight = 0;// EZ_ATTR_BOLD,если хотите жирный шрифт
    lf.lfItalic =  0;//EZ_ATTR_ITALIC - курсив
    lf.lfUnderline = 0;//EZ_ATTR_UNDERLINE-нижнее подчёркивание
    lf.lfStrikeOut = : 0;//EZ_ATTR_STRIKEOUT-зачёркнутый текст
    lf.lfCharSet = 0;
    lf.lfOutPrecision = 0;
    lf.lfQuality = 0;
    lf.lfPitchAndFamily = 0;
 
        strcpy(lf.lfFaceName, szFaceName);//где второй параметр - название шрифта
 
        hFont = CreateFontIndirect(&lf);
        hFont = (HFONT)SelectObject(hdc, hFont);
Добавлено через 1 час 20 минут
Цитата Сообщение от UI Посмотреть сообщение
A static control, or an edit control that is read-only or disabled, sends the WM_CTLCOLORSTATIC message to its parent window when the control is about to be drawn.
извиняюсь,думал,что только для static

Добавлено через 15 секунд
Цитата Сообщение от UI Посмотреть сообщение
A static control, or an edit control that is read-only or disabled, sends the WM_CTLCOLORSTATIC message to its parent window when the control is about to be drawn.
извиняюсь,думал,что только для static
0
26 / 26 / 7
Регистрация: 18.11.2011
Сообщений: 266
29.06.2012, 05:09  [ТС]
Цитата Сообщение от alexey31415 Посмотреть сообщение
LOGFONT * * lf;
TEXTMETRIC* tm;
HDC hdc;
HFONT * * * hFont;
GetTextMetrics(hdc, &tm);
lf.lfHeight = -tm.tmHeight;
* * lf.lfWidth = 0;
* * lf.lfEscapement = 0;
* * lf.lfOrientation = 0;
* * lf.lfWeight = 0;// EZ_ATTR_BOLD,если хотите жирный шрифт
* * lf.lfItalic = *0;//EZ_ATTR_ITALIC - курсив
* * lf.lfUnderline = 0;//EZ_ATTR_UNDERLINE-нижнее подчёркивание
* * lf.lfStrikeOut = : 0;//EZ_ATTR_STRIKEOUT-зачёркнутый текст
* * lf.lfCharSet = 0;
* * lf.lfOutPrecision = 0;
* * lf.lfQuality = 0;
* * lf.lfPitchAndFamily = 0;
strcpy(lf.lfFaceName, szFaceName);//где второй параметр - название шрифта
hFont = CreateFontIndirect(&lf);
* * * * hFont = (HFONT)SelectObject(hdc, hFont);
Как я понял он создается как обычно , н оесть вапрос при установки строки в Edit Box неуказывается дискриптор контекста как программа будит понимать какой ей выбрать ?

Добавлено через 1 час 53 минуты
Цитата Сообщение от UI Посмотреть сообщение
Цвет возвращается обработкой WM_CTLCOLORSTATIC
я тут начал читать про это и прочитал что это для окна диалога а у мна Edit Box в главном окне
0
 Аватар для alexey31415
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
29.06.2012, 09:36
Цитата Сообщение от Ilyawow Посмотреть сообщение
я тут начал читать про это и прочитал что это для окна диалога а у мна Edit Box в главном окне
если не ошибаюсь,то ничего страшного

Цитата Сообщение от Ilyawow Посмотреть сообщение
Как я понял он создается как обычно , н оесть вапрос при установки строки в Edit Box неуказывается дискриптор контекста как программа будит понимать какой ей выбрать ?
ничем не могу помочь
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
29.06.2012, 09:57
Цитата Сообщение от Ilyawow Посмотреть сообщение
я тут начал читать про это и прочитал что это для окна диалога а у мна Edit Box в главном окне
Без разницы:

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
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch(message)
    {
        case WM_CREATE:
            hEditCtrl = CreateWindow("EDIT", "Hello",
                                     WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_MULTILINE|ES_READONLY,
                                     100, 100, 200, 25,
                                     hwnd, (HMENU) IDC_EDIT1, hInst, NULL);
            break;
 
        case WM_DESTROY:
            PostQuitMessage(0);
            break;
 
        case WM_CTLCOLORSTATIC:
            if((HWND)lParam == hEditCtrl)
            {
                return (LRESULT)GetStockObject(WHITE_BRUSH);
            }
            break;
 
        default:
            return DefWindowProc (hwnd, message, wParam, lParam);
    }
    return 0;
}
, получается:
Миниатюры
Ограничение на ввод данных в Edit Box  
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
29.06.2012, 10:10
P.S.
Цитата Сообщение от Ilyawow Посмотреть сообщение
при установки строки в Edit Box неуказывается дискриптор контекста как программа будит понимать какой ей выбрать ?
Не понял, в чем проблема? Ты шрифт для EditBox-а установи (я обычно делаю это так):
C++
1
2
3
4
5
6
7
8
9
10
11
12
        case WM_CREATE:
            hEditCtrl = CreateWindow("EDIT", "Hello",
                                     WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_MULTILINE|ES_READONLY,
                                     100, 100, 200, 25,
                                     hwnd, (HMENU) IDC_EDIT1, hInst, NULL);
            myFont = CreateFont(-11, 0, 0, 0, FW_NORMAL, 0, 0, 0,
                                DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
                                DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "MS Sans Serif");
            if(myFont)
            {
                SendMessage(hEditCtrl, WM_SETFONT, WPARAM(myFont), 0);
            }
, и всё, текст всегда будет выводиться именно этим шрифтом.
1
26 / 26 / 7
Регистрация: 18.11.2011
Сообщений: 266
29.06.2012, 14:33  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
Не понял, в чем проблема? Ты шрифт для EditBox-а установи (я обычно делаю это так):
спасибо так и сделаю )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.06.2012, 14:33
Помогаю со студенческими работами здесь

Ограничение на ввод в Edit
Мне надо чтоб в Edit не вводилось число больше 36 , вот так делаю procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); ...

Edit - ограничение на ввод чисел
Есть поле edit надо сделать так чтобы сначала можно было ввести только число потом + или- потом опять число и всё

Edit ограничение на ввод чисел от 0 до 255
Как создать процедуру для edit (именно для edit!) чтобы вводились числа в диапазоне только от 0 до 255?

Ограничение на ввод какой либо информации в поле Edit
А вот у меня вообще не получается реализовать ограничение на ввод какой либо информации в поле Edit c помощью KeyPress. Т.е. например для...

Ограничение на ввод количество знаков в Edit (не более Х и не менее Х)
На событие OnChange компонента TEdit стоит условие: Button1.Enabled:=(Length(Edit1.Text)>2);(Если указано более трех знаков - тогда...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru