• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Go语言MessageBox用法实例

    本文实例讲述了Go语言MessageBox用法。分享给大家供大家参考。具体如下:

    复制代码 代码如下:
    package main
    import (
           "syscall"
           "unsafe"
           "fmt"
    )
    func abort(funcname string, err int) {
           panic(funcname + " failed: " + syscall.Errno(err).Error())
    }
    var (
           kernel32, _ = syscall.LoadLibrary("kernel32.dll")
           getModuleHandle, _ = syscall.GetProcAddress(kernel32, "GetModuleHandleW")
           user32, _ = syscall.LoadLibrary("user32.dll")
           messageBox, _ = syscall.GetProcAddress(user32, "MessageBoxW")
    )
    const (
           MB_OK                      = 0x00000000
           MB_OKCANCEL                = 0x00000001
           MB_ABORTRETRYIGNORE        = 0x00000002
           MB_YESNOCANCEL             = 0x00000003
           MB_YESNO                   = 0x00000004
           MB_RETRYCANCEL             = 0x00000005
           MB_CANCELTRYCONTINUE       = 0x00000006
           MB_ICONHAND                = 0x00000010
           MB_ICONQUESTION            = 0x00000020
           MB_ICONEXCLAMATION         = 0x00000030
           MB_ICONASTERISK            = 0x00000040
           MB_USERICON                = 0x00000080
           MB_ICONWARNING             = MB_ICONEXCLAMATION
           MB_ICONERROR               = MB_ICONHAND
           MB_ICONINFORMATION         = MB_ICONASTERISK
           MB_ICONSTOP                = MB_ICONHAND
           MB_DEFBUTTON1              = 0x00000000
           MB_DEFBUTTON2              = 0x00000100
           MB_DEFBUTTON3              = 0x00000200
           MB_DEFBUTTON4              = 0x00000300
    )
    func MessageBox(caption, text string, style uintptr) (result int) {
           // var hwnd HWND
           ret, _, callErr := syscall.Syscall6(uintptr(messageBox), 4,
                   0, // HWND
                   uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(text))), // Text
                   uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(caption))), // Caption
                   style, // type
                   0,
                   0)
           if callErr != 0 {
                   abort("Call MessageBox", int(callErr))
           }
           result = int(ret)
           return
    }
    func main() {
           defer syscall.FreeLibrary(kernel32)
           defer syscall.FreeLibrary(user32)
           fmt.Printf("Retern: %d\n", MessageBox("Done Title", "This test is Done.", MB_YESNOCANCEL))
    }
    func init() {
           fmt.Print("Starting Up\n")
    }

    希望本文所述对大家的Go语言程序设计有所帮助。

    您可能感兴趣的文章:
    • Go语言中的range用法实例分析
    • Go语言入门教程之Arrays、Slices、Maps、Range操作简明总结
    • go语言接口用法实例分析
    • GO语言make()分配用法实例
    • Go语言操作redis用法实例
    • GO语言Defer用法实例分析
    • Go语言map字典用法实例分析
    • Go语言中Select语句用法实例
    • Go语言的管道Channel用法实例
    • go语言中range用法
    上一篇:Go语言用map实现堆栈功能的方法
    下一篇:GO语言获取系统环境变量的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Go语言MessageBox用法实例 语言,MessageBox,用法,实例,