windows复制的原理究竟是怎么样的?

Bczheng1 2011-05-10 01:13:27
剪切板写入获取数据我都知道,我只是想知道,如果在一窗口里选中一段文字,然后右击选择复制,程序的执行步骤是怎么样的,比如:在一个窗口单击后,windows会捕获这个消息,然后发送WM_LBUTTONDOWN消息给窗口。

那点复制呢,是如何工作的,是windows把选中的数据写入剪切板,还是windows通知相应的程序要写入数据到剪切板了,还是。。。。。。。就是按了ctrl+c会有什么操作,什么函数被调用

还有选中的文字原理是什么样的,不要告诉我模仿鼠标单击,然后模仿鼠标右移。

我记得Edit类里好像有个函数可以选中文字。
...全文
352 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bczheng1 2011-05-10
  • 打赏
  • 举报
回复
其实我是在设想,鼠标部分获取屏幕上的词语,也就是鼠标指哪儿,就能获取相应一部分区域文字。
就用程序代码实现鼠标选中文字,然后复制等一系列的操作,这样再调用API函数读取剪切板里的内容,
这样不就可以部分模仿某些英语词典鼠标取词的功能吗?
我这也只是设想,连具体实现都不怎么知道,怎么来验证呢,谁感兴趣,研究一下,顺便分享一下。
Bczheng1 2011-05-10
  • 打赏
  • 举报
回复
那跟复制关联的函数是怎样的呢,代码又是什么。有吗?
S_aladdin 2011-05-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 d3582077 的回复:]

那复制是什么消息,它有消息吗?
[/Quote]

你是问菜单上的复制选项么
菜单也是窗口,可以响应各种消息事件,点复制就是鼠标单击消息
indusl 2011-05-10
  • 打赏
  • 举报
回复
liuming
赵4老师 2011-05-10
  • 打赏
  • 举报
回复
SPY++
Bczheng1 2011-05-10
  • 打赏
  • 举报
回复
那复制是什么消息,它有消息吗?
S_aladdin 2011-05-10
  • 打赏
  • 举报
回复
还有选中的文字原理是什么样的
---------------
选中文字几乎要窗口处理所有的鼠标事件,包括按键的抬起、按下和拖拽等,通过一系列逻辑判断是否属于文字选中,记录每一次的坐标点,然后根据字体、大小等文字信息获得文字内容
  • 打赏
  • 举报
回复
当然是对应的编辑框执行了 写入数据到剪切板。

选中的话发消息就可以了

lResult = SendMessage(      // returns LRESULT in lResult     
(HWND) hWndControl, // handle to destination control
(UINT) EM_SETSEL, // message ID
(WPARAM) wParam, // = (WPARAM) () wParam;
(LPARAM) lParam // = (LPARAM) () lParam;
);

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧