首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >VBA使用API_04:创建按钮

VBA使用API_04:创建按钮

作者头像
xyj
发布2020-07-28 11:35:05
发布2020-07-28 11:35:05
1.9K00
代码可运行
举报
文章被收录于专栏:VBA 学习VBA 学习
运行总次数:0
代码可运行

前面创建了窗体,窗体有了,一般我们还会添加一个按钮来执行程序,在前面创建了窗体的基础上,再使用API创建按钮就比较简单,只要在创建了窗体之后、显示之前再添加代码创建按钮。

按钮是windows系统已经注册了的类,所以不再需要注册,直接CreateWindowEx,其中的hWndParent参数设置为窗体的hwnd:

代码语言:javascript
代码运行次数:0
运行
复制
'创建窗体
        hWnd = CreateWindowEx(0, "myForm", "myForm", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, Application.hInstance, ByVal 0)
        
        If hWnd Then
            '添加一个按钮
            btnhwnd = CreateWindowEx(0, "BUTTON", "BUTTON", WS_CHILD Or WS_VISIBLE, 5, 5, 80, 20, hWnd, IDC_BUTTON, Application.hInstance, ByVal 0)
            
            '显示窗体
            ShowWindow hWnd, SW_SHOWNORMAL

设置一个IDC_BUTTON的目的是为了捕获单击事件,这个值好像随便设置一个都可以,然后在回调函数中捕获:

代码语言:javascript
代码运行次数:0
运行
复制
'回调函数
Public Function WndProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    '仅处理WM_DESTROY销毁窗体
    Select Case uMsg
    Case WM_DESTROY:
        DestroyWindow hWnd
        PostQuitMessage 0
        
    Case WM_COMMAND:
        If LOWORD(wParam) = IDC_BUTTON Then
            MsgBox "你点击了按钮。"
        End If
    End Select
    
    '默认的回调函数
    WndProc = DefWindowProc(hWnd&, uMsg, wParam, lParam)
End Function

Function LOWORD(wParam As Long) As Long
    LOWORD = wParam And &HFFFF&
End Function

这样就完成了一个比较简单的界面创建:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 VBA 学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档