我想对实际窗口进行子类化,以检测其大小何时发生了变化。
这是我尝试使用CallWindowProcW和SetWindowLongW对其进行子类化的代码,但是当我最大化窗口时,它不显示任何消息,因此我认为我错误地设置了其中一些过程。怎么做?
var oldWindowProc uintptr
func windowProc(hwnd syscall.Handle, msg uint32, wparam, lparam uintptr) (rc uintptr) {
switch msg {
case WM_SIZE:
fmt.Println("Size")
if wparam == SIZE_MAXIMIZED {
fmt.Println("Changed!")
}
default:
return CallWindowProcW(oldWindowProc, hwnd, msg, wparam, lparam)
}
return 0
}
func main() {
oldWindowProc, _ = SetWindowLongW(syscall.Stdin, GWLP_WNDPROC,
syscall.NewCallback(windowProc))
for {
}
}
白板的微信
宝慕林4294392
相关分类