pb 12.6 pbm_erasebkgnd的hdc返回0

qq_32541807 2016-11-21 04:25:14
pb 12.6 pbm_erasebkgnd的hdc返回0
使用 pb 12.5 及9.0打开这个toobar ,运行一切正常
http://download.csdn.net/detail/hushuiqiu/4121904 PB11.5源码全新DWTOOLBAR,增强版

但是用12.6打开,toolbar运行后,是先显示空白的,



鼠标移动至toolbar,才会显示出按钮,并且字体不正常,接近宋体,无论设置哪种字体,都无法显示出正确的字体


拖动窗口有残影现象



经过一步步排错,发现在pb 12.5 及9.0下,pbm_erasebkgnd的hdc在打开,拖动等都能返回正确的hdc值

而在pb12.6 在窗口还没显示时,pbm_erasebkgnd能返回正确的值,但在显示后,就返回0 ,拖动也是返回0




这是什么原因,大神们,我下载了很多toolbar,都是这个问题

还有12.6在编译成单文件exe,不带pbd的时候,无法使用datastore
带pbd,就可以使用datastore

大神们帮帮忙,这是什么问题。。。。

...全文
1650 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sara1800 2019-04-26
  • 打赏
  • 举报
回复
我以前也遇到过类似的,但不是12版本的,是低版本到高版本的时候的问题。当时是7到8时。后来我也是不得不重做了一些控件。
WMERP 2019-04-10
  • 打赏
  • 举报
回复
引用 6 楼 WMERP 的回复:
我也是碰到这种问题,还有可能现象是随时程序运行好好的就崩溃了,只能全部都换了,不用设计的UI,直接用菜单按钮来处理了。

而且是按照5楼的方法已经修改过的了,不过我的开发环境是 win7+PB2017 , 12.6没用,直接从12.5跳到17了,因为12.6有个大BUG
getitemnumber和getitemdecimal 会报错,比如刚好这个值是整数的时候getitemdecimal 后的值就说我类型不一样,long类型的数值不能赋给DEC
WMERP 2019-04-10
  • 打赏
  • 举报
回复
我也是碰到这种问题,还有可能现象是随时程序运行好好的就崩溃了,只能全部都换了,不用设计的UI,直接用菜单按钮来处理了。
周锦胜 2019-04-09
  • 打赏
  • 举报
回复
在PB 11.5种没问题 再12.6种我也遇到这个问题,研究一天,最后对照12.6种的GUI Code,把 pbm_erasebkgnd的hdc(11.5中是long,12.6已经换成longptr了)换成GetDC(Handle(THIS)) 问题得到解决。

Function ulong GetDC ( ulong hWnd ) Library "user32.dll"
yccf 2017-06-20
  • 打赏
  • 举报
回复
换一个吧,我也遇到这个问题。版本不兼容很正常啊
qweasd2002 2017-05-20
  • 打赏
  • 举报
回复
有问题 1922649692@qq.com
qweasd2002 2017-05-20
  • 打赏
  • 举报
回复
PB12.6全新修正DWTOOLBAR http://download.csdn.net/detail/qweasd2002/9845884
r00_a2lBUR 2017-05-15
  • 打赏
  • 举报
回复
这么复杂的工程,不如自己做一个简单的,测试一下。

680

社区成员

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

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