Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
 Аватар для Vitoster98
1 / 1 / 4
Регистрация: 04.11.2016
Сообщений: 162

Вывод текста в текстовое поле по двойному клику

04.11.2017, 17:43. Показов 2837. Ответов 6

Студворк — интернет-сервис помощи студентам
По двойному клику на текстовом поле выводить туда текст
Недавно начал разбираться, думаю, что так, но не работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
HWND VIVOD;
VIVOD = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE | ES_LEFT |WS_VSCROLL | ES_READONLY | CS_DBLCLKS, 270, 40, 290, 250, hwnd, (HMENU)2, hInstance, NULL);
case WM_LBUTTONDBLCLK:{
    switch(LOWORD(lParam)){
        case 2:{
        SetWindowText(VIVOD,"ты чего нажимаешь тут?");
        break;
                        }
                        break;
                    }
                    break;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.11.2017, 17:43
Ответы с готовыми решениями:

Вставка текста в текстовое поле (input) по клику
Всем привет. у меня есть функция, которая позволяет вставлять в input текст при клике на ссылку <script...

Вывод текста в текстовое поле
У меня есть несколько текстовых полей, в них пользователь вводит числа. Затем нажимает кнопку, и происходит проверка является ли введенная...

Вывод в текстовое поле поле / JavaScript
Добрый вечер! Есть обычная хтмл страница. На ней 2 поля и кнопка. Нужно сделать так, чтобы при нажатии на кнопку во второе поле...

6
15 / 16 / 6
Регистрация: 24.10.2017
Сообщений: 48
05.11.2017, 02:50
https://msdn.microsoft.com/ru-... s.85).aspx

Only windows that have the CS_DBLCLKS style can receive WM_LBUTTONDBLCLK messages
Сообщение WM_LBUTTONDBLCLK могут получать только те окна, которые имеют CS_DBLCLKS

CS - значит стиль класса

Найди в своём коде место с заполнением структуры WNDCLASS (или WNDCLASSEX)

И допиши в стилях CS_DBLCLKS

C++
1
wcex.style          = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
C++
1
2
3
4
case WM_LBUTTONDBLCLK:{
        SetWindowText(VIVOD,L"ты чего нажимаешь тут?");
        break;
    }
0
 Аватар для Vitoster98
1 / 1 / 4
Регистрация: 04.11.2016
Сообщений: 162
05.11.2017, 12:41  [ТС]
Работает, только работает если два раза нажать на окно, а как сделать, чтобы только по текстовому полю?
0
Фриланс Pascal/Delphi etc
 Аватар для ILinker
67 / 73 / 16
Регистрация: 25.11.2016
Сообщений: 263
06.11.2017, 09:05
Добавить флаг CS_DBLCLKS текстовому полю.
0
 Аватар для Vitoster98
1 / 1 / 4
Регистрация: 04.11.2016
Сообщений: 162
06.11.2017, 10:17  [ТС]
Добавил- нн работает
0
 Аватар для Vitoster98
1 / 1 / 4
Регистрация: 04.11.2016
Сообщений: 162
07.11.2017, 13:15  [ТС]
Вот текстовое поле:
C++
1
VIVOD = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE | ES_LEFT |WS_VSCROLL | ES_READONLY | CS_DBLCLKS, 270, 40, 290, 250, hwnd, (HMENU)2, hInstance, NULL);
Вот проверка:
C++
1
2
3
4
case WM_LBUTTONDBLCLK:{
                            SetWindowText(VIVOD,"ты чего нажимаешь тут?"); //не работает
                            break;
                    }
Добавил, как вы и говорили
C++
1
wc.style         = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
Но теперь работает, если только нажимать по самому окну, а не текстовому полю, как отслеживать текстовое поле?
0
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
07.11.2017, 15:46
Цитата Сообщение от Vitoster98 Посмотреть сообщение
как отслеживать текстовое поле?
Элемент edit по-своему обрабатывает различные сообщения. Default Message Processing Например,

WM_LBUTTONDBLCLK Clears the current selection and selects the word under the cursor.
Чтобы что-то изменить или добавить, напишем новую оконную процедуру для edit. Это называется сабклассинг (subclassing).

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// глобальная переменная - адрес исходной оконной процедуры 
WNDPROC oldProc= NULL;
 
LONG WINAPI EditProc( HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam )
{
    switch( message) 
    {
    case WM_LBUTTONDBLCLK:
        MessageBoxA(hwnd, "WM_LBUTTONDBLCLK",  "Info", MB_OK | MB_ICONINFORMATION | MB_TOPMOST ); 
        break;
    default:
        break;
    }
 
    return CallWindowProc(oldProc, hwnd,  message,  wparam,  lparam);
}
После создания edit,
C++
1
2
    if( hEdit )
        oldProc = (WNDPROC)SetWindowLong(hEdit, GWL_WNDPROC, (LONG)EditProc);
0
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru