窗体

VB/VBA _API函数接口合集

效果

窗体代码

'--------------------------------------------------------
'->Forms
'  Module
'  ClassModules
'--------------------------------------------------------
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetMenu Lib "user32" (ByVal hwnd As Long, ByVal hMenu As Long) As Long
Private Declare Function CreateMenu Lib "user32" () As Long
Private Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
Private Declare Function DestroyMenu Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function CreatePopupMenu Lib "user32" () As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Const GWL_WNDPROC = (-4)
Private Const MF_STRING = &H0&
Private Const MF_POPUP = &H10&
Private Const MF_SEPARATOR = &H800&Dim MenuWnd As Long, Dump As Long, PopupMenuID As Long, PopupMenuWnd As Long, MenuID As LongPrivate Sub UserForm_Initialize()If Val(Application.Version) < 9 Thenhwnd = FindWindow("ThunderXFrame", Me.Caption)Elsehwnd = FindWindow("ThunderDFrame", Me.Caption)End IfMenuWnd = CreateMenu()PopupMenuID = CreatePopupMenu()Dump = AppendMenu(MenuWnd, MF_STRING + MF_POPUP, PopupMenuID, "Setting(&X)")Dump = AppendMenu(PopupMenuID, MF_STRING, 100, "save(&S)...")Dump = AppendMenu(PopupMenuID, MF_STRING, 101, "backup(&E)")Dump = AppendMenu(PopupMenuID, MF_STRING, 102, "Exit(&X)")PopupMenuID = CreatePopupMenu()Dump = AppendMenu(MenuWnd, MF_STRING + MF_POPUP, PopupMenuID, "Review(&P)")Dump = AppendMenu(PopupMenuID, MF_STRING, 110, "Record(&L)")Dump = AppendMenu(PopupMenuID, MF_STRING, 111, "Review(&C)")PopupMenuID = CreatePopupMenu()Dump = AppendMenu(MenuWnd, MF_STRING + MF_POPUP, PopupMenuID, "Tools(&Z)")Dump = AppendMenu(PopupMenuID, MF_STRING, 112, "Tuninghelper(&T)")Dump = AppendMenu(PopupMenuID, MF_STRING, 113, "Kgthelper(&J)")PopupMenuID = CreatePopupMenu()Dump = AppendMenu(MenuWnd, MF_STRING + MF_POPUP, PopupMenuID, "Help(&B)")Dump = AppendMenu(PopupMenuID, MF_STRING, 114, "help(&F)")Dump = AppendMenu(PopupMenuID, MF_STRING, 115, "about(&Y)")Dump = SetMenu(hwnd, MenuWnd)PreWinProc = GetWindowLong(hwnd, GWL_WNDPROC)SetWindowLong hwnd, GWL_WNDPROC, AddressOf MsgProcess
End SubPrivate Sub UserForm_Terminate()DestroyMenu MenuWndDestroyMenu PopupMenuIDDestroyMenu PopupMenuWndSetWindowLong hwnd, GWL_WNDPROC, PreWinProc
End Sub

模块代码

'--------------------------------------------------------
'  Forms
'->Module
'  ClassModules
'--------------------------------------------------------
Public PreWinProc As Long, hwnd As LongPublic Declare Function CheckMenuRadioItem Lib "user32" (ByVal hMenu As Long, ByVal un1 As Long, ByVal un2 As Long, ByVal un3 As Long, ByVal un4 As Long) As Long
Public Declare Function CheckMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDCheckItem As Long, ByVal wCheck As Long) As Long
Public Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long
Public Const MF_UNCHECKED = &H0&
Public Const MF_CHECKED = &H8&
Public Const MF_DISABLED = &H2&
Public Const MF_GRAYED = &H1&
Public Const MF_ENABLED = &H0&Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Const MF_BYCOMMAND = &H0&Public Function MsgProcess(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongDim SubMenu_hWnd As LongSelect Case wParamCase 100MsgBox "YourChoose: Save Button"Case 101MsgBox "YourChoose: Backup Buttion"Case 102Unload UserForm1Case 110MsgBox "YourChoose: Record Button"Case 111MsgBox "YourChoose: Review Button"Case 112MsgBox "YourChoose: Tuninghelper Button"Case 113MsgBox "YourChoose: Kgthelper Button"Case 114MsgBox "YourChoose: help Button"Case 115MsgBox "YourChoose: about Button"Case ElseMsgProcess = CallWindowProc(PreWinProc, hwnd, Msg, wParam, lParam)End Select
End Function

Excel VBA 窗体UserForm制作菜单栏相关推荐

  1. Excel VBA窗体上打印系统时间print now出错原因及解决方案

    如图所示,需要在窗体上显示当前系统时间: 首先,我们看一下now函数的原型: Now 函数 语法:Now 说明:返回一个 Variant (Date),根据计算机系统设置的日期和时间来指定日期和时间. ...

  2. 使用Excel VBA制作成绩统计图----(嵌入模式)

    使用Excel VBA制作成绩统计图 一. 工作流程: 全校成绩统计表-> VBA生成统计图用表 ------> VBA生成统计图(嵌入模式) 成绩统计:统计全部成绩信息 成绩表:用于统计 ...

  3. 小福利,用Excel VBA编程制作一个变色小游戏

    小福利,用Excel VBA编程制作一个变色小游戏 设计思想:在正方形的四条边上都是设置循环函数,不断改变颜色和单元格里面的数值. Option ExplicitSub 按钮1_Click() Dim ...

  4. vba 窗体所有组件 enabled_Csharp设计闪烁窗体制作教程

    大家好,今天为大家带来C#怎么制作炫酷的闪烁窗体,教程如下.常用QQ的用户都会知道,如果当前信息窗体并不是活动窗体,但有消息时,窗体就会闪烁,引起用户注意,本文章讲述实现此功能.运行程序点击开始. 过 ...

  5. Excel VBA(宏):添加宏

    写在前面:1.编写宏,打开VBA,双击ThisWorkbook对当前工作薄进行编写宏:双击Sheet1,对整个sheet编写宏: 或者创建模块,在模块里,编写.调试代码. 打开VBA的方法见第一讲,结 ...

  6. 来吧!带你玩转 Excel VBA

    来吧!带你玩转 Excel VBA(含CD光盘1张)(双色)(附带近500个VBA思考练习题,Exceltip.net出品) 罗刚君  杨嘉恺编著 ISBN 978-7-121-20627-6 201 ...

  7. 来吧 带你玩转 Excel VBA

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 来吧!带 ...

  8. Excel VBA 入门(零)

    本教程所用系统环境: Windows 10 Excel 2013 1. 添加开发工具 打开Excel,依然找到"文件"->"选项"->"自 ...

  9. 用VB.NET(Visual Basic 2010)封装EXCEL VBA为DLL_COM组件(一)

    vb.net教程https://www.xin3721.com/eschool/vbnetxin3721/ 为了保护自己辛辛苦苦编写的Excel VBA代码不被盗用,我们需要对Excel VBA代码进 ...

最新文章

  1. vim配置文件收集(作为c/c++和脚本开发的环境)
  2. 如何改变线的长度?CAD .NET热门技术问答精选合集
  3. 红帽OpenShift总经理谈容器技术需要关注的方向
  4. 14、ListView案例
  5. HTML5 表单 中
  6. gulp前端自动化相关文章收集
  7. 博弈论之软件测试的价值
  8. sql between...and 用法(mysql)
  9. 洛谷 P2389 电脑班的裁员 解题报告
  10. FluidSynth(实时MIDI合成器)
  11. OSGL 工具库 - 类型转换的艺术
  12. 深入理解 Android Activity的生命周期
  13. [转载] Python3 open()函数
  14. ElasticStack系列之九 master、data 和 client 节点
  15. IDEA中创建maven web的详细部署
  16. Syong :静态代理模式
  17. Kaldi:提特征报错“compute-fbank-feats: error while loading shared libraries: libkaldi-hmm.so”
  18. oracle 获取日期的毫秒_Oracle date timestamp 毫秒 - 时间函数总结(转)
  19. 软磁材料的环境敏感性
  20. logback实现日志脱敏

热门文章

  1. 毋庸置疑,知数堂确实靠谱
  2. 关于使用simple-robot框架(Mirai组件)登录QQ解决验证问题
  3. 『杭电1237』简单计算器
  4. 新生植发年度大戏开播在即 关注效果再现新生
  5. Zookeeper学习:Zookeeper应用场景之分布式锁
  6. 洛谷循环结构(Freshman锻炼牛犇勿喷)
  7. 如何将二维CAD的DWG转换成工程图模版
  8. Microsoft Store已被阻止,代码:0x800704ec解决办法--亲测有效
  9. 基于C-W节约算法的车辆路径规划问题的Java实现
  10. 32位操作系统是什么意思