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

Как добавить событие по записи данных в буфер обмена?

17.07.2016, 13:02. Показов 1413. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, как в Win32 приложении добавить событие по записи данных в буфер обмена (если я например копирую текст из браузера то в программе что-то делается)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.07.2016, 13:02
Ответы с готовыми решениями:

Как скопировать в буфер обмена выбранные записи в listbox?
Всем привет. Есть Listbox с записями. Как скопировать при нажатии на кнопку все записи, выбранные в listbox?

При копировании текста в буфер обмена, должно происходить событие
Как сделать что бы при копировании в буфер обмена, определенного текста происходило событие? Например при копировании из адресной строки...

Добавить переменную в буфер обмена
Здравствуйте. Перерыл первые три страницы Googl'а в поисках ответа, однако его так и не нашел. Суть задачи такова: нужно добавить...

2
5 / 5 / 3
Регистрация: 15.07.2016
Сообщений: 13
18.07.2016, 19:36
Лучший ответ Сообщение было отмечено Raka как решение

Решение

Привет. Вот типа тово
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
#define WM_UPDATE_CLIPBOARD (WM_APP+1)
BOOL ClipboardChange;
HWND hwndClipboard;
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    LRESULT retval=0;
    switch( uMsg )
    {
    case WM_CREATE:
    {
        hwndClipboard = SetClipboardViewer(hWnd);/*Включит окно, идентификатор которого передается через единственный параметр,
                                                 в список окон просмотра Clipboard, вернув идентификатор предыдущего окна
                                                 просмотра Clipboard hwndNextViewer.
                                                 -- Вы должны сохранить возвращенное значение, так как функция вашего окна
                                                 просмотра Clipboard будет передавать по цепочке сообщения для других окон
                                                 просмотра Clipboard, пользуясь значением hwndNextViewer.
                                                    Если окно вашего приложения является единственным окном просмотра
                                                    Clipboard, функция вернет значение NULL.
                                                -- Перед завершением работы, приложение должно восстановить список окон
                                                просмотра Clipboard, удалив из него свое окно.
                                                Эту процедуру следует выполнить при обработке сообщения WM_DESTROY при
                                                помощи функции ChangeClipboardChain*/
    }
    break;
    
    case WM_CHANGECBCHAIN:
    {
        if( (HWND)wParam==hwndClipboard )
            hwndClipboard=(HWND)lParam;
        else if( hwndClipboard!=NULL )
            SendMessage(hwndClipboard,uMsg,wParam,lParam);
    }
    break;
 
    case WM_DRAWCLIPBOARD:
    {
        if( !ClipboardChange )
            PostMessage(hWnd,WM_UPDATE_CLIPBOARD,(WPARAM)0,(LPARAM)0);
        if( hwndClipboard!=NULL )
            SendMessage(hwndClipboard,uMsg,wParam,lParam);
    }
    break;
 
    case WM_UPDATE_CLIPBOARD:
    {
        if( ClipboardChange==FALSE )
        {
            ClipboardChange = TRUE;
            static int Count= 0;
            char svStr[64];
            wsprintfA(svStr,"Clipboard change: %d", Count);
            SendMessage(hWnd,WM_SETTEXT,(WPARAM)0,(LPARAM)svStr);
            ++Count;
            ClipboardChange = FALSE;
        }
    }
    break;
 
    case WM_CLOSE:
    PostMessage(hWnd,WM_DESTROY,(WPARAM)0,(LPARAM)0);
    break;
    case WM_DESTROY:
    
        ChangeClipboardChain(hWnd,hwndClipboard);/*Удаляет Wnd из цепочки пpосмотpа буфеpа
                                                 выpезанного изобpажения и заменяет его на WndNext*/
 
    PostQuitMessage(0);
    break;
    default:
    retval=DefWindowProc(hWnd,uMsg,wParam,lParam);
    break;
    }
    return retval;
}
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
19.07.2016, 09:39
На Vista и выше можно использовать более простой API, см. AddClipboardFormatListener.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.07.2016, 09:39
Помогаю со студенческими работами здесь

Добавить строку в буфер обмена
Dim oDataObj As New DataObject 'вставляем строку в буфер обмена-в лифте её видно не будет oDataObj.SetText str ...

Копирование в буфер обмена данных из поля
Как скопировать в буфер обмена данные из поля в VBA? Сами данные получаю, след. образом: Set rst =...

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

Копирование через буфер обмена из 2х полей формы и вставка данных в другую форму
Всем очень добрый день! Подскажите пожалуйста, можно ли реализовать одновременное копирование данных из 2-х полей формы и вставку этих...

Загрузка и сохранение массива данных, посредством помещения его в буфер обмена. Пример?
Цель: 1) Скопировать массив данных в буфер. 2) сохранить в файл тип имени файла любой. MyFile.MyFormat 3) Загрузить массив из файла,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru