VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
楼主: acme_pjz

[讨论] 自己编了一个山寨2003工具栏+菜单控件

[复制链接]
 楼主| 发表于 2009-11-6 21:58:53 | 显示全部楼层
18# VBAdvisor

My code isn't hook menu; it's simply using a window as fake menu   so the whole code is dreadful ... The code uses a message hook to hook the system menu, then display a fake menu   Other menu (including MDI menu) is completely unhooked...

If you can't run the code, maybe you didn't have Common Dialog Control(this is optional, you can just delete it). Or you turned on the DEP (Data Executive Protection), it will prevents ASM Thunk hook code (hook TrackPopupMenuEx) from running. You can change the code to disable hook, or add some complex code (calling VirtualProtect) to set the executable flag.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-6 21:59:31 | 显示全部楼层
20# swx1995

? ……那就运行源代码吧……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-6 22:07:55 | 显示全部楼层
18# VBAdvisor


And there still are some possible bugs:

1.Add drop shadow to tool tip text:

Public Sub EnableDropShadow(ByVal hwnd As Long)
    SetClassLong hwnd, GCL_STYLE, GetClassLong(hwnd, GCL_STYLE) Or CS_DROPSHADOW
End Sub

...

hwd = pFindWindowByClassName("VBBubble")
If hwd <> 0 Then
EnableDropShadow hwd
b = True
End If
hwd = pFindWindowByClassName("VBBubbleRT5")
If hwd <> 0 Then
EnableDropShadow hwd
b = True
End If
hwd = pFindWindowByClassName("VBBubbleRT6")
If hwd <> 0 Then
EnableDropShadow hwd
b = True
End If

I'm not sure SetClassLong can run on all computer.

2.A new method to enable XP Style


Public Sub NewLoadManifest()
On Error GoTo a
Dim t As ACTCTXW, s As String
Dim h As Long, i As Long
Debug.Print 1 \ 0
InitCommonControls
t.cbSize = Len(t)
s = Environ("path")
i = InStr(s, ";")
If i > 0 Then s = Left(s, i - 1)
s = s + "\shell32.dll"
t.lpcwstrSource = StrPtr(s)
t.lpcwstrResourceName = 124
t.dwFlags = ACTCTX_FLAG_RESOURCE_NAME_VALID
h = CreateActCtxW(t)
If h <> -1 And h <> 0 Then ActivateActCtx h, i
a:
End Sub

I'm not sure this code can run on all computer.
回复 支持 反对

使用道具 举报

发表于 2009-11-8 23:44:25 | 显示全部楼层
界面看起来很好,可惜:

从1楼下的有问题
----------------------------------------------------------------------------
Set FakeToolBar1(0).Picture = LoadPicture(CStr(App.Path) + "\..\未标题-1.gif")
上面的语句雷到我了,并且压缩包里没有“未标题-1.gif”,只好胡乱找了个GIF图片代替,将上面的语句改为:Set FakeToolBar1(0).Picture = LoadPicture(App.Path + "\1.gif")
啊!没合适的GIF素材,界面不堪入目。


================================================

从11楼下的还是有问题
----------------------------------------------------------------------------
Set FakeToolBar1(0).Picture = LoadPicture(CStr(App.Path) + "\..\未标题-1.gif")
上面的语句错误,并且压缩包里没有“未标题-1.gif”,找到的是“无标题-1.gif”,将上面的语句改为:
    Set FakeToolBar1(0).Picture = LoadPicture(App.Path + "\无标题-1.gif")
结果。。。


上面的语句改为:
    Set FakeToolBar1(0).Picture = LoadPicture(App.Path + "\无标题-2.gif")
结果。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1人气 +1 收起 理由
acme_pjz + 1 感谢提醒

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-9 23:10:23 | 显示全部楼层
本帖最后由 VBProFan 于 2009-11-9 23:43 编辑

不慎忘了……

未标题-1.rar  被移动到#1
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-16 18:44:18 | 显示全部楼层
现在发现个挂钩的Bug……在“打开”对话框对着文件点邮右键,弹出Office2003样式的菜单,点“属性”,出现“属性”对话框,然后随便在里面找个文本框,点右键……本来我想参观一下Office2003型菜单的,结果弹出一个“应用程序错误”对话框……我猜想是因为那个窗口在另一个线程里面运行,而VB多线程很烂,所以就非法操作了……有趣的是选择“确定”之后程序竟然没有崩溃,又退回“打开”对话框了……不过选择图片文件点“预览”,然后在“Windows图片与传真查看器”标题栏上点右键就没这么幸运了,程序崩溃退出了……
回复 支持 反对

使用道具 举报

发表于 2009-11-16 22:33:57 | 显示全部楼层
很好很强大的山寨作品!!支持!!
回复 支持 反对

使用道具 举报

发表于 2009-11-17 17:40:59 | 显示全部楼层
23# acme_pjz I still can't manage to run the demo.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2009-11-18 08:43:00 | 显示全部楼层
http://www.vbgood.com/viewthread.php?tid=86982
是一个skin控件,可以重绘button listbox 等基本控件,整合一下可以成真正的skin控件啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-18 13:18:12 | 显示全部楼层
28# VBAdvisor

Looks like your VB can't load the .ctl file ( or can't find .ctl file) ? All user controls become picture boxes... Open .vbp file using notepad, find "UserControl=***.ctl" and make the path correct...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-9-25 16:24

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表