本文整理汇总了Golang中github.com/lxn/win.WNDCLASSEX.LpfnWndProc方法的典型用法代码示例。如果您正苦于以下问题:Golang WNDCLASSEX.LpfnWndProc方法的具体用法?Golang WNDCLASSEX.LpfnWndProc怎么用?Golang WNDCLASSEX.LpfnWndProc使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/lxn/win.WNDCLASSEX
的用法示例。
在下文中一共展示了WNDCLASSEX.LpfnWndProc方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: MustRegisterWindowClassWithWndProcPtr
func MustRegisterWindowClassWithWndProcPtr(className string, wndProcPtr uintptr) {
if registeredWindowClasses[className] {
panic("window class already registered")
}
hInst := win.GetModuleHandle(nil)
if hInst == 0 {
panic("GetModuleHandle")
}
hIcon := win.LoadIcon(0, (*uint16)(unsafe.Pointer(uintptr(win.IDI_APPLICATION))))
if hIcon == 0 {
panic("LoadIcon")
}
hCursor := win.LoadCursor(0, (*uint16)(unsafe.Pointer(uintptr(win.IDC_ARROW))))
if hCursor == 0 {
panic("LoadCursor")
}
var wc win.WNDCLASSEX
wc.CbSize = uint32(unsafe.Sizeof(wc))
wc.LpfnWndProc = wndProcPtr
wc.HInstance = hInst
wc.HIcon = hIcon
wc.HCursor = hCursor
wc.HbrBackground = win.COLOR_BTNFACE + 1
wc.LpszClassName = syscall.StringToUTF16Ptr(className)
if atom := win.RegisterClassEx(&wc); atom == 0 {
panic("RegisterClassEx")
}
registeredWindowClasses[className] = true
}
示例2: MyRegisterClass
func MyRegisterClass(hInstance win.HINSTANCE) (atom win.ATOM) {
var wc win.WNDCLASSEX
wc.CbSize = uint32(unsafe.Sizeof(wc))
wc.Style = win.CS_HREDRAW | win.CS_VREDRAW
wc.LpfnWndProc = syscall.NewCallback(WndProc)
wc.CbClsExtra = 0
wc.CbWndExtra = 0
wc.HInstance = hInstance
wc.HbrBackground = win.GetSysColorBrush(win.COLOR_WINDOWFRAME)
wc.LpszMenuName = syscall.StringToUTF16Ptr("")
wc.LpszClassName = syscall.StringToUTF16Ptr(wndClassName)
wc.HIconSm = win.LoadIcon(0, win.MAKEINTRESOURCE(win.IDI_APPLICATION))
wc.HIcon = win.LoadIcon(0, win.MAKEINTRESOURCE(win.IDI_APPLICATION))
wc.HCursor = win.LoadCursor(0, win.MAKEINTRESOURCE(win.IDC_ARROW))
return win.RegisterClassEx(&wc)
}