如何主动触发鼠标响应

GoingMerry 2014-07-27 09:10:01
C++Builder 中 我想用程序主动触发 鼠标中键的响应 应该怎么写? 具体说 就是我想按鼠标左键的时候 让程序触发 中键 要在鼠标左键的响应函数里 触发 响应函数已经写好了 就是不知道如何触发中键 请大神指导 本人新手 谢谢
...全文
238 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
GoingMerry 2014-07-29
  • 打赏
  • 举报
回复
引用 21 楼 ccrun 的回复:
直接访问 OlePropertyGet("scrollTop") 返回的值就行了
嗯 谢妖哥
GoingMerry 2014-07-28
  • 打赏
  • 举报
回复
引用 16 楼 ccrun 的回复:
scrollTop属性应该是一个数值,而不是字符串吧。
明白问题出在哪了。。我网页是ie的内核 不能获得body 得获得documentElement 。。
GoingMerry 2014-07-28
  • 打赏
  • 举报
回复
引用 16 楼 ccrun 的回复:
scrollTop属性应该是一个数值,而不是字符串吧。
body.OlePropertySet("scrollTop", 150); 改成这个也没用呢。。这个有哪些属性和 值 在哪里可以看到 啊 帮助文档里 没找到。。 另外真的非常感谢您的细心回答
ccrun.com 2014-07-28
  • 打赏
  • 举报
回复
scrollTop属性应该是一个数值,而不是字符串吧。
GoingMerry 2014-07-28
  • 打赏
  • 举报
回复
引用 13 楼 ccrun 的回复:
[quote=引用 12 楼 GoingMerry 的回复:] 为什么您的代码里会有个button响应呢 您这个代码是说 点一个button之后 触发中键响应么? 而且您给的代码 只是触发了一个对话框啊 我现在是有一个cppWebBrowser 我想用左键点页面上的任何地方就能触发中键响应(默认效果是移动鼠标翻滚页面) 没有button
结合你的上下帖子,我略有点明白你真正的需求了,确实正如10楼所说,你的需求和你提的问题根本就是两回事。这样吧,你把你的工程代码压缩一下发我信箱,我帮你调试好了。(当然,前提是你的工程不涉及保密的情况下) cbfans at 163 dot com[/quote] 另外 有时间的能帮忙看下这段代码么 为什么没有效果啊 是实现页面翻滚的 Variant doc = cppWebBrowser->Document; if (!VarIsEmpty(doc)) { Variant body = doc.OlePropertyGet("body"); if (!VarIsEmpty(body)) { body.OlePropertySet("scrollTop", "150"); // 向下捲動的點數 VarClear(body); } VarClear(doc); }
GoingMerry 2014-07-28
  • 打赏
  • 举报
回复
引用 13 楼 ccrun 的回复:
[quote=引用 12 楼 GoingMerry 的回复:] 为什么您的代码里会有个button响应呢 您这个代码是说 点一个button之后 触发中键响应么? 而且您给的代码 只是触发了一个对话框啊 我现在是有一个cppWebBrowser 我想用左键点页面上的任何地方就能触发中键响应(默认效果是移动鼠标翻滚页面) 没有button
结合你的上下帖子,我略有点明白你真正的需求了,确实正如10楼所说,你的需求和你提的问题根本就是两回事。这样吧,你把你的工程代码压缩一下发我信箱,我帮你调试好了。(当然,前提是你的工程不涉及保密的情况下) cbfans at 163 dot com[/quote] 发了 麻烦了 谢谢
ccrun.com 2014-07-28
  • 打赏
  • 举报
回复
引用 12 楼 GoingMerry 的回复:
为什么您的代码里会有个button响应呢 您这个代码是说 点一个button之后 触发中键响应么? 而且您给的代码 只是触发了一个对话框啊 我现在是有一个cppWebBrowser 我想用左键点页面上的任何地方就能触发中键响应(默认效果是移动鼠标翻滚页面) 没有button
结合你的上下帖子,我略有点明白你真正的需求了,确实正如10楼所说,你的需求和你提的问题根本就是两回事。这样吧,你把你的工程代码压缩一下发我信箱,我帮你调试好了。(当然,前提是你的工程不涉及保密的情况下) cbfans at 163 dot com
GoingMerry 2014-07-28
  • 打赏
  • 举报
回复
引用 5 楼 ccrun 的回复:
鉴于楼主是3天的新手,我得特别告你一下,如果你直接将我2楼的代码复制到你的单元中,编译会提示XX不是TForm1的成员函数,你需要手工在头文件中添加函数声明。或者让IDE自动生成代码框架。目测此帖得在20个回复以后才能完美解决楼主问题。
为什么您的代码里会有个button响应呢 您这个代码是说 点一个button之后 触发中键响应么? 而且您给的代码 只是触发了一个对话框啊 我现在是有一个cppWebBrowser 我想用左键点页面上的任何地方就能触发中键响应(默认效果是移动鼠标翻滚页面) 没有button
jmppok 2014-07-28
  • 打赏
  • 举报
回复
bizai2214 2014-07-28
  • 打赏
  • 举报
回复
引用 8 楼 ccrun 的回复:
[quote=引用 6 楼 ksrsoft 的回复:] 妖哥真耐心 6楼了
是中国人的就顶起来。[/quote] 顶到20楼,送三个月QQ会员,我试过了,是骗人的
ccrun.com 2014-07-28
  • 打赏
  • 举报
回复
直接访问 OlePropertyGet("scrollTop") 返回的值就行了
uhian 2014-07-28
  • 打赏
  • 举报
回复
难道我是第20楼
GoingMerry 2014-07-28
  • 打赏
  • 举报
回复
引用 16 楼 ccrun 的回复:
scrollTop属性应该是一个数值,而不是字符串吧。
还一个问题 就是OlePropertyGet("scrollTop"); 这个get怎么使用啊 我想获得 scrollTop这个属性的当前的值
lhy 2014-07-27
  • 打赏
  • 举报
回复
也许楼主真正的需求不是楼主所问的问题。
hongss 2014-07-27
  • 打赏
  • 举报
回复
引用 7 楼 dataxdata 的回复:
[quote=引用 3 楼 GoingMerry 的回复:] 请问事件函数是什么呢 有代码么 我真的是新手。。接触CB不到3天。。求指导 谢谢!
其实,更合理的方法是,把相关的操作单独封装在一个函数中,处理鼠标事件时,根据需要调用这个函数,而不是去调用事件处理函数,比如: void MyFunc1() { ...... } void MyFunc2() { ....... MyFunc1(); ...... } void __fastcall TForm1::MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { switch ( Button ) { case mbLeft : MyFunc2(); break; case mbMiddle : MyFunc1(); break; } } [/quote] 这个对于学了3天的新手貌似难度有点大。。。
ccrun.com 2014-07-27
  • 打赏
  • 举报
回复
引用 6 楼 ksrsoft 的回复:
妖哥真耐心 6楼了
是中国人的就顶起来。
dataxdata 2014-07-27
  • 打赏
  • 举报
回复
引用 3 楼 GoingMerry 的回复:
请问事件函数是什么呢 有代码么 我真的是新手。。接触CB不到3天。。求指导 谢谢!
其实,更合理的方法是,把相关的操作单独封装在一个函数中,处理鼠标事件时,根据需要调用这个函数,而不是去调用事件处理函数,比如: void MyFunc1() { ...... } void MyFunc2() { ....... MyFunc1(); ...... } void __fastcall TForm1::MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { switch ( Button ) { case mbLeft : MyFunc2(); break; case mbMiddle : MyFunc1(); break; } }
缘中人 2014-07-27
  • 打赏
  • 举报
回复
妖哥真耐心 6楼了
ccrun.com 2014-07-27
  • 打赏
  • 举报
回复
鉴于楼主是3天的新手,我得特别告你一下,如果你直接将我2楼的代码复制到你的单元中,编译会提示XX不是TForm1的成员函数,你需要手工在头文件中添加函数声明。或者让IDE自动生成代码框架。目测此帖得在20个回复以后才能完美解决楼主问题。
ccrun.com 2014-07-27
  • 打赏
  • 举报
回复
引用 3 楼 GoingMerry 的回复:
请问事件函数是什么呢 有代码么 我真的是新手。。接触CB不到3天。。求指导 谢谢!
楼主选择性看回复?看不到2楼的代码?
加载更多回复(3)
Silverlight2.0功能展示Demo源码 1、Silverlight(3) - 2.0控件之Border, Button, Calendar, Canvas, CheckBox, ComboBox 介绍 Silverlight 2.0 控件一览:Border, Button, Calendar, Canvas, CheckBox, ComboBox 2、Silverlight(4) - 2.0控件之DataGrid, DatePicker, Grid, GridSplitter, HyperlinkButton, Image 介绍 Silverlight 2.0 控件一览:DataGrid, DatePicker, Grid, GridSplitter, HyperlinkButton, Image 3、Silverlight(5) - 2.0控件之ListBox, MediaElement, MultiScaleImage, PasswordBox, ProgressBar, RadioButton 介绍 Silverlight 2.0 控件一览:ListBox, MediaElement, MultiScaleImage, PasswordBox, ProgressBar, RadioButton 4、Silverlight(6) - 2.0控件之ScrollViewer, Slider, StackPanel, TabControl, TextBlock, TextBox, ToggleButton 介绍 Silverlight 2.0 控件一览:ScrollViewer, Slider, StackPanel, TabControl, TextBlock, TextBox, ToggleButton 5、Silverlight(7) - 2.0图形之Ellipse, Line, Path, Polygon, Polyline, Rectangle 介绍 Silverlight 2.0 图形: Ellipse - 椭圆 Line - 线 Path - 一系列相互连接的直线和曲线 Polygon - 多边形,闭合图形,起点与终点自动相连 Polyline - 非闭合图形,一串连接起来的线,起点与终点不会自动相连 Rectangle - 矩形 6、Silverlight(8) - 2.0图形之基类System.Windows.Shapes.Shape 介绍 Silverlight 2.0 图形:基类System.Windows.Shapes.Shape(Ellipse, Line, Path, Polygon, Polyline, Rectangle都继承自抽象类System.Windows.Shapes.Shape)。 Fill - 填充;Stroke - 笔画(边框) StrokeThickness - 笔画(边框)尺寸 Stretch - 拉伸值 StrokeDashArray - 虚线和间隙的值的集合 StrokeDashCap - 虚线两端(线帽)的类型 StrokeStartLineCap - 虚线起始端(线帽)的类型 StrokeEndLineCap - 虚线终结端(线帽)的类型 StrokeDashOffset - 虚线的起始位置。从虚线的起始端的 StrokeDashOffset 距离处开始描绘虚线 StrokeLineJoin - 图形连接点处的连接类型 StrokeMiterLimit - 斜接长度 与 StrokeThickness/2 的比值。默认值 10,最小值 1 7、Silverlight(9) - 2.0画笔之SolidColorBrush, ImageBrush, VideoBrush, LinearGradientBrush, RadialGradientBrush 介绍 Silverlight 2.0 画笔: SolidColorBrush - 单色画笔 ImageBrush - 图像画笔 VideoBrush - 视频画笔 LinearGradientBrush - 线性渐变画笔 RadialGradientBrush - 放射性渐变画笔 8、Silverlight(10) - 2.0其它之Transform详解,以及UIElement和FrameworkElement的常用属性 介绍 Silverlight 2.0 其它: RenderTransform - 呈现位置的转换(System.Windows.Media.Transform类型) RenderTransformOrigin - 位置转换的中心点 Clip - 容器的剪辑区域(System.Windows.Media.Geometry类型) IsHitTestVisible - 命中测试是否可见 Opacity - 不透明度。0 - 1之间 OpacityMask - 不透明蒙版(遮罩)(System.Windows.Media.Brush类型) UseLayoutRounding - 是否使用完整像素布局 Cursor - 鼠标移动到 FrameworkElement 上面时,鼠标指针的样式 Margin - 容器边缘与边缘之外的空白距离(像素值:上下左右;左右,上下;左,上,右,下) Tag - 保存一些额外的信息(System.Object类型) 9、Silverlight(11) - 2.0动画之ColorAnimation, DoubleAnimation, PointAnimation, 内插关键帧动画 介绍 Silverlight 2.0 动画: ColorAnimation - 在两个 Color 值之间做线性内插动画处理 DoubleAnimation - 在两个 Double 值之间做线性内插动画处理 PointAnimation - 在两个 Point 值之间做线性内插动画处理 内插关键帧动画 - 在 Color 或 Double 或 Point 动画中内插关键帧,以做线性, 离散, 三次贝塞尔曲线的动画处理 动态改变动画 - 通过程序控制,动态地改变动画 10、Silverlight(12) - 2.0外观之样式, 模板, 视觉状态和视觉状态管理器 介绍 Silverlight 2.0 外观控制:样式(Style), 模板(Template), 视觉状态(VisualState)和视觉状态管理器(VisualStateManager) 11、Silverlight(13) - 2.0交互之鼠标事件和键盘事件 介绍 Silverlight 2.0 人机交互:响应用户的鼠标操作和键盘操作。 MouseEnter - 鼠标进入时触发的事件(显然,此事件不能冒泡) MouseLeave - 鼠标离开时触发的事件(显然,此事件不能冒泡) MouseLeftButtonDown - 鼠标左键单击按下时触发的事件 MouseLeftButtonUp - 鼠标左键单击按下并放开时触发的事件 MouseMove - 鼠标移动时触发的事件 MouseEventArgs.GetPosition() - 鼠标相对于指定元素的坐标 MouseButtonEventArgs.Handled - 此事件是否已被处理 KeyDown - 鼠标按下时触发的事件 KeyUp - 鼠标按下并放开时触发的事件 KeyEventArgs.Key - 与事件相关的键盘的按键 [Input.Key枚举] KeyEventArgs.Handled - 是否处理过此事件 Keyboard.Modifiers - 当前按下的辅助键 [Input.ModifierKeys枚举] 12、Silverlight(14) - 2.0交互之InkPresenter(涂鸦板) 介绍 Silverlight 2.0 人机交互:InkPresenter(涂鸦板)。 InkPresenter - 涂鸦板,也就是在面板上呈现墨迹。InkPresenter 可以包含子控件 Cursor - 鼠标移动到 InkPresenter 上面时,鼠标指针的样式 Background - 涂鸦板背景 Opacity - 面板上墨迹的不透明度 Clip - InkPresenter 的剪辑区域 Stroke.DrawingAttributes - Stroke(笔划)的外观属性 UIElement.CaptureMouse() - 为 UIElement 对象启用鼠标捕捉 UIElement.CaptureMouse() - 为 UIElement 对象释放鼠标捕捉 13、Silverlight(15) - 2.0数据之一次绑定, 单向绑定, 双向绑定, INotifyPropertyChanged, 数据转换, 数据验证 介绍 Silverlight 2.0 数据绑定: Binding - 将绑定目标对象的属性与数据源联接起来 INotifyPropertyChanged - 向客户端发出某一属性值已更改的通知 IValueConverter - 值转换接口,将一个类型的值转换为另一个类型的值。它提供了一种将自定义逻辑应用于绑定的方式 BindingValidationError - 出现验证错误或解决上次验证错误则触发此事件 14、Silverlight(16) - 2.0数据之独立存储(Isolated Storage) 介绍 Silverlight 2.0 数据的独立存储(Isolated Storage): IsolatedStorageFile - 操作 独立存储 的类; IsolatedStorageFile.GetUserStoreForSite() - 按站点获取用户的独立存储 IsolatedStorageFile.GetUserStoreForApplication() - 按应用程序获取用户的独立存储 IsolatedStorageSettings - 在独立存储中保存的 key-value 字典表 IsolatedStorageSettings.SiteSettings - 按站点保存的 key-value 字典表 IsolatedStorageSettings.ApplicationSettings - 按应用程序保存的 key-value 字典表 15、Silverlight(17) - 2.0数据之详解DataGrid, 详解ListBox 介绍 Silverlight 2.0 详解DataGrid, 绑定数据到ListBox: AutoGenerateColumns - 是否根据数据源自动生成列 RowDetailsVisibilityMode - 显示相应的行的详细数据时所使用的显示模式 DataGrid.RowDetailsTemplate - 用于显示相应的行的详细数据的模板 AreRowDetailsFrozen - 是否冻结 RowDetailsTemplate GridLinesVisibility - 表格分隔线的显示方式 RowBackground - 奇数数据行背景 AlternatingRowBackground - 偶数数据行背景 IsReadOnly - 单元格是否只读 FrozenColumnCount - 表格所冻结的列的总数(从左边开始数) SelectionMode - 行的选中模式 CanUserReorderColumns - 是否允许拖动列 CanUserResizeColumns - 是否允许改变列的宽度 CanUserSortColumns - 是否允许列的排序 16、Silverlight(18) - 2.0视频之详解MediaElement, 开发一个简易版的全功能播放器 介绍 Silverlight 2.0 详解MediaElement:开发一个简易版的全功能播放器。 Source - 需要播放的媒体地址 Stretch - 拉伸值 AutoPlay - 是否自动播放媒体 CurrentState - 播放状态 Position - 媒体的位置 DroppedFramesPerSecond - 媒体每秒正在丢弃的帧数 BufferingProgress - 缓冲进度 DownloadProgress - 下载进度 NaturalDuration - 媒体文件的时长; Volume - 音量大小 Balance - 音量平衡 BufferingTime - 需要缓冲的时间的长度 CurrentState - 播放状态 IsMuted - 是否静音 Play() - 播放媒体 Pause() - 暂停媒体的播放 Stop() - 停止媒体的播放 17、Silverlight(19) - 2.0通信之调用REST服务,处理JSON格式, XML格式, RSS/ATOM格式的数据 介绍 Silverlight 2.0 调用REST服务,处理JSON格式, XML格式, RSS/ATOM格式的数据。 通过 System.Net.WebClient 类调用 REST 服务 通过 System.Json 命名控件下的类处理 JSON 数据 通过 System.Xml.Linq 命名空间下的类(LINQ to XML)处理 XML 数据 通过 System.ServiceModel.Syndication 命名空间下的类处理 RSS/ATOM 数据 18、Silverlight(20) - 2.0通信之WebClient, 以字符串的形式上传/下载数据, 以流的方式上传/下载数据 介绍 Silverlight 2.0 详解WebClient,以字符串的形式上传、下载数据;以流的方式上传、下载数据。 WebClient - 将数据发送到指定的 URI,或者从指定的 URI 接收数据的类 DownloadStringAsync(Uri address, Object userToken) - 以字符串的形式下载指定的 URI 的资源 UploadStringAsync(Uri address, string data) - 以字符串的形式上传数据到指定的 URI。所使用的 HTTP 方法默认为 POST OpenReadAsync(Uri address, Object userToken) - 以流的形式下载指定的 URI 的资源 OpenWriteAsync(Uri address, string method, Object userToken) - 打开流以使用指定的方法向指定的 URI 写入数据 19、Silverlight(21) - 2.0通信之WebRequest和WebResponse, 对指定的URI发出请求以及接收响应 介绍 Silverlight 2.0 详解WebRequest和WebResponse,对指定的URI做GET和POST请求,以及接收其响应。 HttpWebRequest - 对指定的 URI 发出请求 Create() - 初始化一个 WebRequest BeginGetResponse() - 开始对指定 URI 资源做异步请求 EndGetResponse() - 结束对指定 URI 资源做异步请求 HttpWebResponse - 对指定的 URI 做出响应 GetResponseStream() - 获取响应的数据流 20、Silverlight(22) - 2.0通信之调用WCF服务, 对传输信息做加密 介绍 Silverlight 2.0 调用 WCF 服务,对客户端与服务端传输的消息做加密。在 Visual Studio 2008 中使用"添加服务引用"会自动生成代理类。只支持BasicHttpBinding 21、Silverlight(23) - 2.0通信之调用WCF的双向通信(Duplex Service) 介绍 Silverlight 2.0 调用 WCF 的双向通信服务(Duplex Service) 。 开发一个服务端主动向客服端发送股票信息的程序,首先客户端先向服务端发送需要监控的股票的股票代码,然后服务端在该股信息发生变化的时候将信息推送到客户端 22、Silverlight(24) - 2.0通信之Socket, 开发一个多人聊天室 介绍 Silverlight 2.0 Socket通信。开发一个多人聊天室。 服务端:实例化Socket, 绑定, 监听, 连接, 接收数据, 发送数据 客户端:实例化Socket, 指定服务端地址, 连接, 接收数据, 发送数据 23、Silverlight(25) - 2.0线程之Thread, Timer, BackgroundWorker, ThreadPool 介绍 Silverlight 2.0 使用Thread, Timer, BackgroundWorker, ThreadPool来实现多线程开发。 Thread - 用于线程的创建和控制的类 Timer - 用于以指定的时间间隔执行指定的方法的类 BackgroundWorker - 用于在单独的线程上运行操作 ThreadPool - 线程池的管理类 24、Silverlight(26) - 2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute 介绍 Silverlight 2.0 使用Lock, Interlocked, EventWaitHandle, Monitor来实现线程同步。 Lock - 确保代码块完成运行,而不会被其他线程中断 Interlocked - 为多个线程共享的变量提供原子级的操作 EventWaitHandle - 通知其他线程是否可入的类 Monitor - 提供同步访问对象的机制 ThreadStaticAttribute - 所指定的静态变量对每个线程都是唯一的 25、Silverlight(27) - 2.0网页之可脚本化, 与DOM的交互, 与JavaScript的交互 介绍 Silverlight 2.0 使用c#开发可脚本化的代码,Silverlight与宿主页面的DOM之间的交互,Silverlight与宿主页面的JavaScript之间的交互。 ScriptableMemberAttribute - 需要脚本化的属性、方法、事件要标记为此 HtmlPage.RegisterScriptableObject - 将可脚本化对象注册到客户端 HtmlElement - 表示网页的文档对象模型 (DOM) 中的 HTML 元素 HtmlWindow - 提供 JavaScript 的 window 对象的 Silverlight 端的托管表示形

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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