VB版的高手朋友们请过来帮帮忙!

MaiWang 2002-08-01 09:44:46
我没用过vb,但用vc新做的控件需要在vb下可以正常使用。
在测试时,碰到了一个问题,就是控件的背景透过问题。

在VB中的Form1上静态添加我做的控件,然后在Form1上放置了背景图,最后运行程序。
程序启动后发现控件本身并没有取得Form1的背景图,而把Project1的背景涂了上去(为灰黑色),曾怀疑是在控件添加时,Form1并未创立,于是控件把Project1做为了父窗体。针对这个我在Form1的OnPait中动态的添加了控件,此时程序运行正常。

此控件在VC中经反复测试是正确的,不知在VB下是何故?如果是上面的原因,如何能在静态添加控件的时候指定控件的父窗体?
...全文
20 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
MaiWang 2002-08-28
  • 打赏
  • 举报
回复
To Chice_wxg(VS.NET = 光驱烤肉,我也入网了)

我并没GetDC 因为控件本身的OnEraseBkgnd已经提供了含背景的CDC,我要做的只是保存而已。
但是在vb下的结果的确与vc下的不同。
你说的方法有时间马上试。

恩,还有,没什么礼貌不礼貌的,我说的是事实,不让讲吗?不回答并不是没时间调ocx,而是不会,不会自然是水平不行,有什么错误的吗?如果碰到我不会回答的问题,自然说明我水平也不行
MaiWang 2002-08-01
  • 打赏
  • 举报
回复
我倒!
楼上的!:)你不回答问题,借题发挥啊?
zhuangbx220 2002-08-01
  • 打赏
  • 举报
回复
我有个下载来的源程序,里面有一个第三方的控件,在编辑状态时,程序运行正常。

可是编辑成EXE后,,那控件确丢了。

不知道为什么??
MaiWang 2002-08-01
  • 打赏
  • 举报
回复
在网上看到有人用api这样设置子父窗体的关系
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

SetParent Form2.hWnd, Form1.hWnd

由于我的控件并未向外提供窗口句丙(这是要求,不能改动),这个函数不知道怎么用才行。
MaiWang 2002-08-01
  • 打赏
  • 举报
回复
不好使~~
不是刷新的问题!
kmcyz 2002-08-01
  • 打赏
  • 举报
回复
这样试试:

Private sub form_load()

yourocx.refresh

end sub
bob008 2002-08-01
  • 打赏
  • 举报
回复
你的背景图???包好了吗?VB版什么时候差过?:(
Chice_wxg 2002-08-01
  • 打赏
  • 举报
回复


其实正确的方法是:
DWORD COCXTestCtrl::GetControlFlags()
{
DWORD dwFlags = COleControl::GetControlFlags();
dwFlags |= windowlessActivate;
return dwFlags;
}

这样控件才能真正透明。


顺便跟你说,以后说话最好礼貌点。

VB版的并不是帮你调试OCX的。

Chice_wxg 2002-08-01
  • 打赏
  • 举报
回复
我想知道你是如何取得窗口背景图的?
如果你用GetDC + BitBlt,那么结果必然是错误的。
aprim 2002-08-01
  • 打赏
  • 举报
回复
hoho...
MaiWang 2002-08-01
  • 打赏
  • 举报
回复
有没有知道的啊?

原来VB版的人不过如此嘛!

7,763

社区成员

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

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