本文整理汇总了Golang中github.com/lxn/win.GET_Y_LPARAM函数的典型用法代码示例。如果您正苦于以下问题:Golang GET_Y_LPARAM函数的具体用法?Golang GET_Y_LPARAM怎么用?Golang GET_Y_LPARAM使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GET_Y_LPARAM函数的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: publishMouseWheelEvent
func (wb *WindowBase) publishMouseWheelEvent(publisher *MouseEventPublisher, wParam, lParam uintptr) {
x := int(win.GET_X_LPARAM(lParam))
y := int(win.GET_Y_LPARAM(lParam))
button := MouseButton(uint32(wParam))
publisher.Publish(x, y, button)
}
示例2: publishMouseEvent
func (wb *WindowBase) publishMouseEvent(publisher *MouseEventPublisher, wParam, lParam uintptr) {
x := int(win.GET_X_LPARAM(lParam))
y := int(win.GET_Y_LPARAM(lParam))
button := MouseButton(wParam&win.MK_LBUTTON | wParam&win.MK_RBUTTON | wParam&win.MK_MBUTTON)
publisher.Publish(x, y, button)
}
示例3: onResize
func (tw *TabWidget) onResize(lParam uintptr) {
r := win.RECT{0, 0, win.GET_X_LPARAM(lParam), win.GET_Y_LPARAM(lParam)}
if !win.MoveWindow(tw.hWndTab, r.Left, r.Top, r.Right-r.Left, r.Bottom-r.Top, true) {
lastError("MoveWindow")
return
}
tw.resizePages()
}
示例4: publishMouseEvent
func (wb *WindowBase) publishMouseEvent(publisher *MouseEventPublisher, wParam, lParam uintptr) {
x := int(win.GET_X_LPARAM(lParam))
y := int(win.GET_Y_LPARAM(lParam))
var button MouseButton
switch true {
case wParam&win.MK_LBUTTON > 0:
button = LeftButton
case wParam&win.MK_MBUTTON > 0:
button = MiddleButton
case wParam&win.MK_RBUTTON > 0:
button = RightButton
}
publisher.Publish(x, y, button)
}
示例5: WndProc
// WndProc is the window procedure of the window.
//
// When implementing your own WndProc to add or modify behavior, call the
// WndProc of the embedded window for messages you don't handle yourself.
func (wb *WindowBase) WndProc(hwnd win.HWND, msg uint32, wParam, lParam uintptr) uintptr {
switch msg {
case win.WM_ERASEBKGND:
if wb.background == nil {
break
}
canvas, err := newCanvasFromHDC(win.HDC(wParam))
if err != nil {
break
}
defer canvas.Dispose()
if err := canvas.FillRectangle(wb.background, wb.ClientBounds()); err != nil {
break
}
return 1
case win.WM_LBUTTONDOWN, win.WM_MBUTTONDOWN, win.WM_RBUTTONDOWN:
if msg == win.WM_LBUTTONDOWN && wb.origWndProcPtr == 0 {
// Only call SetCapture if this is no subclassed control.
// (Otherwise e.g. WM_COMMAND(BN_CLICKED) would no longer
// be generated for PushButton.)
win.SetCapture(wb.hWnd)
}
wb.publishMouseEvent(&wb.mouseDownPublisher, wParam, lParam)
case win.WM_LBUTTONUP, win.WM_MBUTTONUP, win.WM_RBUTTONUP:
if msg == win.WM_LBUTTONUP && wb.origWndProcPtr == 0 {
// See WM_LBUTTONDOWN for why we require origWndProcPtr == 0 here.
if !win.ReleaseCapture() {
lastError("ReleaseCapture")
}
}
wb.publishMouseEvent(&wb.mouseUpPublisher, wParam, lParam)
case win.WM_MOUSEMOVE:
wb.publishMouseEvent(&wb.mouseMovePublisher, wParam, lParam)
case win.WM_SETCURSOR:
if wb.cursor != nil {
win.SetCursor(wb.cursor.handle())
return 0
}
case win.WM_CONTEXTMENU:
sourceWindow := windowFromHandle(win.HWND(wParam))
if sourceWindow == nil {
break
}
x := win.GET_X_LPARAM(lParam)
y := win.GET_Y_LPARAM(lParam)
contextMenu := sourceWindow.ContextMenu()
var handle win.HWND
if widget, ok := sourceWindow.(Widget); ok {
handle = ancestor(widget).Handle()
} else {
handle = sourceWindow.Handle()
}
if contextMenu != nil {
win.TrackPopupMenuEx(
contextMenu.hMenu,
win.TPM_NOANIMATION,
x,
y,
handle,
nil)
return 0
}
case win.WM_KEYDOWN:
wb.handleKeyDown(wParam, lParam)
case win.WM_KEYUP:
wb.handleKeyUp(wParam, lParam)
case win.WM_SIZE, win.WM_SIZING:
wb.sizeChangedPublisher.Publish()
case win.WM_DESTROY:
switch w := wb.window.(type) {
case *ToolTip:
case Widget:
globalToolTip.RemoveTool(w)
}
delete(hwnd2WindowBase, hwnd)
wb.hWnd = 0
wb.window.Dispose()
}
//.........这里部分代码省略.........
示例6: WndProc
// WndProc is the window procedure of the window.
//
// When implementing your own WndProc to add or modify behavior, call the
// WndProc of the embedded window for messages you don't handle yourself.
func (wb *WindowBase) WndProc(hwnd win.HWND, msg uint32, wParam, lParam uintptr) uintptr {
window := windowFromHandle(hwnd)
switch msg {
case win.WM_ERASEBKGND:
if wb.background == nil {
break
}
canvas, err := newCanvasFromHDC(win.HDC(wParam))
if err != nil {
break
}
defer canvas.Dispose()
if err := canvas.FillRectangle(wb.background, wb.ClientBounds()); err != nil {
break
}
return 1
case win.WM_HSCROLL, win.WM_VSCROLL:
if window := windowFromHandle(win.HWND(lParam)); window != nil {
// The window that sent the notification shall handle it itself.
return window.WndProc(hwnd, msg, wParam, lParam)
}
case win.WM_LBUTTONDOWN, win.WM_MBUTTONDOWN, win.WM_RBUTTONDOWN:
if msg == win.WM_LBUTTONDOWN && wb.origWndProcPtr == 0 {
// Only call SetCapture if this is no subclassed control.
// (Otherwise e.g. WM_COMMAND(BN_CLICKED) would no longer
// be generated for PushButton.)
win.SetCapture(wb.hWnd)
}
wb.publishMouseEvent(&wb.mouseDownPublisher, wParam, lParam)
case win.WM_LBUTTONUP, win.WM_MBUTTONUP, win.WM_RBUTTONUP:
if msg == win.WM_LBUTTONUP && wb.origWndProcPtr == 0 {
// See WM_LBUTTONDOWN for why we require origWndProcPtr == 0 here.
if !win.ReleaseCapture() {
lastError("ReleaseCapture")
}
}
wb.publishMouseEvent(&wb.mouseUpPublisher, wParam, lParam)
case win.WM_MOUSEMOVE:
wb.publishMouseEvent(&wb.mouseMovePublisher, wParam, lParam)
case win.WM_MOUSEWHEEL:
wb.publishMouseWheelEvent(&wb.mouseWheelPublisher, wParam, lParam)
case win.WM_SETFOCUS, win.WM_KILLFOCUS:
wb.focusedChangedPublisher.Publish()
case win.WM_SETCURSOR:
if wb.cursor != nil {
win.SetCursor(wb.cursor.handle())
return 0
}
case win.WM_CONTEXTMENU:
sourceWindow := windowFromHandle(win.HWND(wParam))
if sourceWindow == nil {
break
}
x := win.GET_X_LPARAM(lParam)
y := win.GET_Y_LPARAM(lParam)
contextMenu := sourceWindow.ContextMenu()
var handle win.HWND
if widget, ok := sourceWindow.(Widget); ok {
handle = ancestor(widget).Handle()
} else {
handle = sourceWindow.Handle()
}
if contextMenu != nil {
win.TrackPopupMenuEx(
contextMenu.hMenu,
win.TPM_NOANIMATION,
x,
y,
handle,
nil)
return 0
}
case win.WM_KEYDOWN:
wb.handleKeyDown(wParam, lParam)
case win.WM_KEYUP:
wb.handleKeyUp(wParam, lParam)
case win.WM_DROPFILES:
//.........这里部分代码省略.........
示例7: WndProc
func (tv *TableView) WndProc(hwnd win.HWND, msg uint32, wParam, lParam uintptr) uintptr {
switch msg {
case win.WM_ERASEBKGND:
if tv.lastColumnStretched && !tv.inEraseBkgnd {
tv.inEraseBkgnd = true
defer func() {
tv.inEraseBkgnd = false
}()
tv.StretchLastColumn()
}
return 1
case win.WM_GETDLGCODE:
if wParam == win.VK_RETURN {
return win.DLGC_WANTALLKEYS
}
case win.WM_LBUTTONDOWN, win.WM_RBUTTONDOWN, win.WM_LBUTTONDBLCLK, win.WM_RBUTTONDBLCLK:
var hti win.LVHITTESTINFO
hti.Pt = win.POINT{win.GET_X_LPARAM(lParam), win.GET_Y_LPARAM(lParam)}
tv.SendMessage(win.LVM_HITTEST, 0, uintptr(unsafe.Pointer(&hti)))
if hti.Flags == win.LVHT_NOWHERE && tv.SingleItemSelection() {
// We keep the current item, if in single item selection mode.
tv.SetFocus()
return 0
}
switch msg {
case win.WM_LBUTTONDOWN, win.WM_RBUTTONDOWN:
if hti.Flags == win.LVHT_ONITEMSTATEICON &&
tv.itemChecker != nil &&
tv.CheckBoxes() {
tv.toggleItemChecked(int(hti.IItem))
}
}
case win.WM_KEYDOWN:
if wParam == win.VK_SPACE &&
tv.currentIndex > -1 &&
tv.itemChecker != nil &&
tv.CheckBoxes() {
tv.toggleItemChecked(tv.currentIndex)
}
case win.WM_NOTIFY:
switch int32(((*win.NMHDR)(unsafe.Pointer(lParam))).Code) {
case win.LVN_GETDISPINFO:
di := (*win.NMLVDISPINFO)(unsafe.Pointer(lParam))
row := int(di.Item.IItem)
col := tv.fromLVColIdx(di.Item.ISubItem)
if di.Item.Mask&win.LVIF_TEXT > 0 {
var text string
switch val := tv.model.Value(row, col).(type) {
case string:
text = val
case float32:
prec := tv.columns.items[col].precision
if prec == 0 {
prec = 2
}
text = FormatFloatGrouped(float64(val), prec)
case float64:
prec := tv.columns.items[col].precision
if prec == 0 {
prec = 2
}
text = FormatFloatGrouped(val, prec)
case time.Time:
if val.Year() > 1601 {
text = val.Format(tv.columns.items[col].format)
}
case *big.Rat:
prec := tv.columns.items[col].precision
if prec == 0 {
prec = 2
}
text = formatBigRatGrouped(val, prec)
default:
text = fmt.Sprintf(tv.columns.items[col].format, val)
}
utf16 := syscall.StringToUTF16(text)
buf := (*[264]uint16)(unsafe.Pointer(di.Item.PszText))
max := mini(len(utf16), int(di.Item.CchTextMax))
copy((*buf)[:], utf16[:max])
(*buf)[max-1] = 0
}
if tv.imageProvider != nil && di.Item.Mask&win.LVIF_IMAGE > 0 {
if image := tv.imageProvider.Image(row); image != nil {
//.........这里部分代码省略.........