用GetPixel取得窗体(UseForm)上某个点的RGB值, 运行后发现触发mousemove前,鼠标点击了其他程序(如IE) 最后RGB返回值会出现变化

baneit319 2020-09-13 12:12:27
VBA下,建了一个窗体(UserForm)调用简单的API
返回的是窗体固定位置的RGB值,怎么会在运行程序后,鼠标点击其他应用, 再触发mousemove会发生变化?
hdc每次发生变化可以理解,为什么窗体上某个点颜色的返回值怎么会变化呀?我试了在整个窗体上插个图片进去结果也是这样.
我的理解GetPixel取得的是窗体上50,100这个点的颜色,窗体本身没有变化,那取得的RGB值不应该变化呀?

Module class 代码如下:
Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Public Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Public Colorval&, Red&, Green&, Blue&
Public Sub GetRGB(cc As Long)
Red = cc Mod 256
Green = (cc Mod 256) Mod 256
Blue = cc Mod 256 Mod 256
End Sub


窗体UserForm代码如下:
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
hdc = GetDC(UserForm)
' hdc = GetDC(0) hdc改成取得0,结果也这样.
Colorval = GetPixel(hdc, 50, 100)
Call GetRGB(Colorval)
Me.Caption = CStr(Colorval) & "Red point:" & CStr(Red) & "Green point:" & CStr(Green) & "Blue point:" & CStr(Blue) & " hdc value:" & hdc
ReleaseDC UserForm, hdc
End Sub
Private Sub UserForm_load()
Me.scalemode = 3
End Sub

直接运行结果(鼠标不去点击其他程序)


运行后,鼠标先去点击比如IE或者其他程序,再触发窗体的mousemove(注意看Red/Green/Blue point这3个值发生了变化!!!)
...全文
681 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
baneit319 2020-09-14
  • 打赏
  • 举报
回复
哪位指点一下,万分感谢!
内容概要:本文聚焦风电出力的不确定性问题,采用拉丁超立方抽样(Latin Hypercube Sampling, LHS)方法生成具有统计代表性的风电出力初始场景集,有效克服传统蒙特卡洛抽样存在的样本冗余与收敛速度慢的缺陷。为进一步降低场景数量以提升电力系统优化调度的计算效率,研究结合K-means聚类、快速向选择等场景缩减技术,对生成的高维场景进行聚合与概率修正,保留最具代表性的典型场景及其对应概率分布。整个建模流程在Matlab平台上编程实现,形成一套完整的“抽样—生成—缩减—验证”的不确定性建模框架,为含高比例风电的电力系统提供高质量、低冗余的输入场景集,显著增强随机优化、鲁棒优化等模型的求解效率与工程实用性。; 适合人群:具备电力系统分析、概率统计基础及Matlab编程能力,从事新能源并网、电力系统优化调度、不确定性建模与风险评估等方向的科研人员、工程技术人员及研究生。; 使用场景及目标:①应用于风电主导的电力系统随机优化调度、机约束规划、鲁棒经济调度等场景,提升模型对不确定性的刻画能力;②帮助研究者深入掌握拉丁超立方抽样与场景缩减的核心原理与实现方法,构建高精度的不确定性输入模型;③为复杂电力系统仿真提供经过科学约简的典型场景集,平衡计算精度与效率,支撑实际工程决策。; 阅读建议:建议读者结合提供的Matlab代码逐模块调试与运行,重理解LHS在多维空间中的分层抽样机制、场景距离度量方式及聚类缩减过程中的概率守恒原则,关注缩减后场景集的分布保真性与计算效率提升效果,以全面掌握风电不确定性建模的关键技术路径。

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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