本文整理汇总了Golang中github.com/lxn/win.LOWORD函数的典型用法代码示例。如果您正苦于以下问题:Golang LOWORD函数的具体用法?Golang LOWORD怎么用?Golang LOWORD使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了LOWORD函数的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: WndProc
func (sv *ScrollView) WndProc(hwnd win.HWND, msg uint32, wParam, lParam uintptr) uintptr {
if sv.composite != nil {
switch msg {
case win.WM_HSCROLL:
sv.composite.SetX(sv.scroll(win.SB_HORZ, win.LOWORD(uint32(wParam))))
case win.WM_VSCROLL:
sv.composite.SetY(sv.scroll(win.SB_VERT, win.LOWORD(uint32(wParam))))
case win.WM_MOUSEWHEEL:
var cmd uint16
if delta := int16(win.HIWORD(uint32(wParam))); delta < 0 {
cmd = win.SB_LINEDOWN
} else {
cmd = win.SB_LINEUP
}
sv.composite.SetY(sv.scroll(win.SB_VERT, cmd))
return 0
case win.WM_COMMAND, win.WM_NOTIFY:
sv.composite.WndProc(hwnd, msg, wParam, lParam)
case win.WM_SIZE, win.WM_SIZING:
s := maxSize(sv.composite.layout.MinSize(), sv.ClientBounds().Size())
sv.composite.SetSize(s)
sv.updateScrollBars()
}
}
return sv.WidgetBase.WndProc(hwnd, msg, wParam, lParam)
}
示例2: WndProc
func (sl *Slider) WndProc(hwnd win.HWND, msg uint32, wParam, lParam uintptr) uintptr {
switch msg {
case win.WM_HSCROLL, win.WM_VSCROLL:
switch win.LOWORD(uint32(wParam)) {
case win.TB_THUMBPOSITION, win.TB_ENDTRACK:
sl.valueChangedPublisher.Publish()
}
return 0
}
return sl.WidgetBase.WndProc(hwnd, msg, wParam, lParam)
}
示例3: SizeHint
func (tb *ToolBar) SizeHint() Size {
if tb.actions.Len() == 0 {
return Size{}
}
size := uint32(tb.SendMessage(win.TB_GETBUTTONSIZE, 0, 0))
width := tb.defaultButtonWidth
if width == 0 {
width = int(win.LOWORD(size))
}
height := int(win.HIWORD(size))
return Size{width, height}
}
示例4: WndProc
func (tb *ToolBar) WndProc(hwnd win.HWND, msg uint32, wParam, lParam uintptr) uintptr {
switch msg {
case win.WM_COMMAND:
switch win.HIWORD(uint32(wParam)) {
case win.BN_CLICKED:
actionId := uint16(win.LOWORD(uint32(wParam)))
if action, ok := actionsById[actionId]; ok {
action.raiseTriggered()
return 0
}
}
case win.WM_NOTIFY:
nmhdr := (*win.NMHDR)(unsafe.Pointer(lParam))
switch int32(nmhdr.Code) {
case win.TBN_DROPDOWN:
nmtb := (*win.NMTOOLBAR)(unsafe.Pointer(lParam))
actionId := uint16(nmtb.IItem)
if action := actionsById[actionId]; action != nil {
var r win.RECT
if 0 == tb.SendMessage(win.TB_GETRECT, uintptr(actionId), uintptr(unsafe.Pointer(&r))) {
break
}
p := win.POINT{r.Left, r.Bottom}
if !win.ClientToScreen(tb.hWnd, &p) {
break
}
win.TrackPopupMenuEx(
action.menu.hMenu,
win.TPM_NOANIMATION,
p.X,
p.Y,
tb.hWnd,
nil)
return win.TBDDRET_DEFAULT
}
}
}
return tb.WidgetBase.WndProc(hwnd, msg, wParam, lParam)
}
示例5: WndProc
func (fb *FormBase) WndProc(hwnd win.HWND, msg uint32, wParam, lParam uintptr) uintptr {
switch msg {
case win.WM_ACTIVATE:
switch win.LOWORD(uint32(wParam)) {
case win.WA_ACTIVE, win.WA_CLICKACTIVE:
if fb.prevFocusHWnd != 0 {
win.SetFocus(fb.prevFocusHWnd)
}
case win.WA_INACTIVE:
fb.prevFocusHWnd = win.GetFocus()
}
return 0
case win.WM_CLOSE:
fb.closeReason = CloseReasonUnknown
var canceled bool
fb.closingPublisher.Publish(&canceled, fb.closeReason)
if !canceled {
if fb.owner != nil {
fb.owner.SetEnabled(true)
if !win.SetWindowPos(fb.owner.Handle(), win.HWND_NOTOPMOST, 0, 0, 0, 0, win.SWP_NOMOVE|win.SWP_NOSIZE|win.SWP_SHOWWINDOW) {
lastError("SetWindowPos")
}
}
fb.close()
}
return 0
case win.WM_COMMAND:
return fb.clientComposite.WndProc(hwnd, msg, wParam, lParam)
case win.WM_GETMINMAXINFO:
mmi := (*win.MINMAXINFO)(unsafe.Pointer(lParam))
layout := fb.clientComposite.Layout()
var min Size
if layout != nil {
min = fb.sizeFromClientSize(layout.MinSize())
}
mmi.PtMinTrackSize = win.POINT{
int32(maxi(min.Width, fb.minSize.Width)),
int32(maxi(min.Height, fb.minSize.Height)),
}
return 0
case win.WM_NOTIFY:
return fb.clientComposite.WndProc(hwnd, msg, wParam, lParam)
case win.WM_SETTEXT:
fb.titleChangedPublisher.Publish()
case win.WM_SIZE, win.WM_SIZING:
fb.clientComposite.SetBounds(fb.window.ClientBounds())
case win.WM_SYSCOMMAND:
if wParam == win.SC_CLOSE {
fb.closeReason = CloseReasonUser
}
case taskbarButtonCreatedMsgId:
version := win.GetVersion()
major := version & 0xFF
minor := version & 0xFF00 >> 8
// Check that the OS is Win 7 or later (Win 7 is v6.1).
if major > 6 || (major == 6 && minor > 0) {
fb.progressIndicator, _ = newTaskbarList3(fb.hWnd)
}
}
return fb.WindowBase.WndProc(hwnd, msg, wParam, lParam)
}
示例6: WndProc
//.........这里部分代码省略.........
start -= len(nle.prefix)
end -= len(nle.prefix)
nle.processChar(text, start, end, KeyDelete, 0)
return 0
case KeyDown:
nle.incrementValue(-nle.increment)
return 0
case KeyEnd:
start, end := nle.TextSelection()
end = len(nle.textUTF16()) - len(nle.suffix)
if !ShiftDown() {
start = end
}
nle.SetTextSelection(start, end)
return 0
case KeyHome:
start, end := nle.TextSelection()
start = len(nle.prefix)
if !ShiftDown() {
end = start
}
nle.SetTextSelection(start, end)
return 0
case KeyLeft:
var pos win.POINT
win.GetCaretPos(&pos)
lParam := uintptr(win.MAKELONG(uint16(pos.X), uint16(pos.Y)))
i := int(win.LOWORD(uint32(nle.SendMessage(win.EM_CHARFROMPOS, 0, lParam))))
if min := len(nle.prefix); i <= min {
if !ShiftDown() {
nle.SetTextSelection(min, min)
}
return 0
}
case KeyReturn:
if nle.inEditMode {
nle.endEdit()
nle.selectNumber()
return 0
}
case KeyRight:
var pos win.POINT
win.GetCaretPos(&pos)
lParam := uintptr(win.MAKELONG(uint16(pos.X), uint16(pos.Y)))
i := int(win.LOWORD(uint32(nle.SendMessage(win.EM_CHARFROMPOS, 0, lParam))))
if max := len(nle.textUTF16()) - len(nle.suffix); i >= max {
if !ShiftDown() {
nle.SetTextSelection(max, max)
}
return 0
}
case KeyUp:
nle.incrementValue(nle.increment)
return 0
示例7: WndProc
func (cb *ContainerBase) WndProc(hwnd win.HWND, msg uint32, wParam, lParam uintptr) uintptr {
switch msg {
case win.WM_COMMAND:
if lParam == 0 {
switch win.HIWORD(uint32(wParam)) {
case 0:
cmdId := win.LOWORD(uint32(wParam))
switch cmdId {
case win.IDOK, win.IDCANCEL:
form := ancestor(cb)
if form == nil {
break
}
dlg, ok := form.(dialogish)
if !ok {
break
}
var button *PushButton
if cmdId == win.IDOK {
button = dlg.DefaultButton()
} else {
button = dlg.CancelButton()
}
if button != nil && button.Visible() && button.Enabled() {
button.raiseClicked()
}
break
}
// Menu
actionId := uint16(win.LOWORD(uint32(wParam)))
if action, ok := actionsById[actionId]; ok {
action.raiseTriggered()
return 0
}
case 1:
// Accelerator
}
} else {
// The window that sent the notification shall handle it itself.
hWnd := win.HWND(lParam)
if window := windowFromHandle(hWnd); window != nil {
window.WndProc(hwnd, msg, wParam, lParam)
return 0
}
}
case win.WM_NOTIFY:
nmh := (*win.NMHDR)(unsafe.Pointer(lParam))
if window := windowFromHandle(nmh.HwndFrom); window != nil {
// The window that sent the notification shall handle it itself.
return window.WndProc(hwnd, msg, wParam, lParam)
}
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_SIZE, win.WM_SIZING:
if cb.layout != nil {
cb.layout.Update(false)
}
}
return cb.WidgetBase.WndProc(hwnd, msg, wParam, lParam)
}