本文整理汇总了Golang中github.com/lxn/win.SetWindowPos函数的典型用法代码示例。如果您正苦于以下问题:Golang SetWindowPos函数的具体用法?Golang SetWindowPos怎么用?Golang SetWindowPos使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了SetWindowPos函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: SetFullscreen
func (mw *MainWindow) SetFullscreen(fullscreen bool) error {
if fullscreen == mw.Fullscreen() {
return nil
}
if fullscreen {
var mi win.MONITORINFO
mi.CbSize = uint32(unsafe.Sizeof(mi))
if mw.windowPlacement == nil {
mw.windowPlacement = new(win.WINDOWPLACEMENT)
}
if !win.GetWindowPlacement(mw.hWnd, mw.windowPlacement) {
return lastError("GetWindowPlacement")
}
if !win.GetMonitorInfo(win.MonitorFromWindow(
mw.hWnd, win.MONITOR_DEFAULTTOPRIMARY), &mi) {
return newError("GetMonitorInfo")
}
if err := mw.ensureStyleBits(win.WS_OVERLAPPEDWINDOW, false); err != nil {
return err
}
if r := mi.RcMonitor; !win.SetWindowPos(
mw.hWnd, win.HWND_TOP,
r.Left, r.Top, r.Right-r.Left, r.Bottom-r.Top,
win.SWP_FRAMECHANGED|win.SWP_NOOWNERZORDER) {
return lastError("SetWindowPos")
}
} else {
if err := mw.ensureStyleBits(win.WS_OVERLAPPEDWINDOW, true); err != nil {
return err
}
if !win.SetWindowPlacement(mw.hWnd, mw.windowPlacement) {
return lastError("SetWindowPlacement")
}
if !win.SetWindowPos(mw.hWnd, 0, 0, 0, 0, 0, win.SWP_FRAMECHANGED|win.SWP_NOMOVE|
win.SWP_NOOWNERZORDER|win.SWP_NOSIZE|win.SWP_NOZORDER) {
return lastError("SetWindowPos")
}
}
return nil
}
示例2: BringToTop
// BringToTop moves the *WindowBase to the top of the keyboard focus order.
func (wb *WindowBase) BringToTop() error {
if !win.SetWindowPos(wb.hWnd, win.HWND_TOP, 0, 0, 0, 0, win.SWP_NOACTIVATE|win.SWP_NOMOVE|win.SWP_NOSIZE) {
return lastError("SetWindowPos")
}
return nil
}
示例3: NewToolTip
func NewToolTip() (*ToolTip, error) {
tt := new(ToolTip)
if err := InitWindow(
tt,
nil,
"tooltips_class32",
win.WS_POPUP|win.TTS_ALWAYSTIP,
win.WS_EX_TOPMOST); err != nil {
return nil, err
}
succeeded := false
defer func() {
if !succeeded {
tt.Dispose()
}
}()
win.SetWindowPos(tt.hWnd, win.HWND_TOPMOST, 0, 0, 0, 0, win.SWP_NOMOVE|win.SWP_NOSIZE|win.SWP_NOACTIVATE)
succeeded = true
return tt, nil
}
示例4: SetParent
// SetParent sets the parent of the WidgetBase and adds the WidgetBase to the
// Children list of the Container.
func (wb *WidgetBase) SetParent(parent Container) (err error) {
if parent == wb.parent {
return nil
}
style := uint32(win.GetWindowLong(wb.hWnd, win.GWL_STYLE))
if style == 0 {
return lastError("GetWindowLong")
}
if parent == nil {
style &^= win.WS_CHILD
style |= win.WS_POPUP
if win.SetParent(wb.hWnd, 0) == 0 {
return lastError("SetParent")
}
win.SetLastError(0)
if win.SetWindowLong(wb.hWnd, win.GWL_STYLE, int32(style)) == 0 {
return lastError("SetWindowLong")
}
} else {
style |= win.WS_CHILD
style &^= win.WS_POPUP
win.SetLastError(0)
if win.SetWindowLong(wb.hWnd, win.GWL_STYLE, int32(style)) == 0 {
return lastError("SetWindowLong")
}
if win.SetParent(wb.hWnd, parent.Handle()) == 0 {
return lastError("SetParent")
}
}
b := wb.Bounds()
if !win.SetWindowPos(
wb.hWnd,
win.HWND_BOTTOM,
int32(b.X),
int32(b.Y),
int32(b.Width),
int32(b.Height),
win.SWP_FRAMECHANGED) {
return lastError("SetWindowPos")
}
oldParent := wb.parent
wb.parent = parent
var oldChildren, newChildren *WidgetList
if oldParent != nil {
oldChildren = oldParent.Children()
}
if parent != nil {
newChildren = parent.Children()
}
if newChildren == oldChildren {
return nil
}
widget := wb.window.(Widget)
if oldChildren != nil {
oldChildren.Remove(widget)
}
if newChildren != nil && !newChildren.containsHandle(wb.hWnd) {
newChildren.Add(widget)
}
return nil
}
示例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: NewGroupBox
func NewGroupBox(parent Container) (*GroupBox, error) {
gb := new(GroupBox)
if err := InitWidget(
gb,
parent,
groupBoxWindowClass,
win.WS_VISIBLE,
win.WS_EX_CONTROLPARENT); err != nil {
return nil, err
}
succeeded := false
defer func() {
if !succeeded {
gb.Dispose()
}
}()
gb.hWndGroupBox = win.CreateWindowEx(
0, syscall.StringToUTF16Ptr("BUTTON"), nil,
win.WS_CHILD|win.WS_VISIBLE|win.BS_GROUPBOX,
0, 0, 80, 24, gb.hWnd, 0, 0, nil)
if gb.hWndGroupBox == 0 {
return nil, lastError("CreateWindowEx(BUTTON)")
}
setWindowFont(gb.hWndGroupBox, gb.Font())
var err error
gb.checkBox, err = NewCheckBox(gb)
if err != nil {
return nil, err
}
gb.checkBox.SetChecked(true)
gb.checkBox.CheckedChanged().Attach(func() {
gb.applyEnabledFromCheckBox(gb.checkBox.Checked())
})
setWindowVisible(gb.checkBox.hWnd, false)
gb.composite, err = NewComposite(gb)
if err != nil {
return nil, err
}
win.SetWindowPos(gb.checkBox.hWnd, win.HWND_TOP, 0, 0, 0, 0, win.SWP_NOMOVE|win.SWP_NOSIZE)
gb.MustRegisterProperty("Title", NewProperty(
func() interface{} {
return gb.Title()
},
func(v interface{}) error {
return gb.SetTitle(v.(string))
},
gb.titleChangedPublisher.Event()))
gb.MustRegisterProperty("Checked", NewBoolProperty(
func() bool {
return gb.Checked()
},
func(v bool) error {
gb.SetChecked(v)
return nil
},
gb.CheckedChanged()))
succeeded = true
return gb, nil
}