logview.go
// Copyright 2012 The Walk Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
import (
"errors"
"syscall"
"unsafe"
)
import (
"github.com/lxn/walk"
"github.com/lxn/win"
)
type LogView struct {
walk.WidgetBase
logChan chan string
}
const (
TEM_APPENDTEXT = win.WM_USER + 6
)
func NewLogView(parent walk.Container) (*LogView, error) {
lc := make(chan string, 1024)
lv := &LogView{logChan: lc}
if err := walk.InitWidget(
lv,
parent,
"EDIT",
win.WS_TABSTOP|win.WS_VISIBLE|win.WS_VSCROLL|win.ES_MULTILINE|win.ES_WANTRETURN,
win.WS_EX_CLIENTEDGE); err != nil {
return nil, err
}
lv.setReadOnly(true)
lv.SendMessage(win.EM_SETLIMITTEXT, 4294967295, 0)
return lv, nil
}
func (*LogView) CreateLayoutItem(ctx *walk.LayoutContext) walk.LayoutItem {
return walk.NewGreedyLayoutItem()
}
func (lv *LogView) setTextSelection(star

该博客介绍了一个用Go编写的LogView组件,它是一个用于显示和追加文本的日志视图。LogView实现了在GUI中实时追加文本的功能,支持设置只读模式,并且能够处理来自消息队列的文本追加请求。通过使用win32 API,LogView可以方便地集成到Windows应用中,提供日志记录和查看的能力。
最低0.47元/天 解锁文章
2246

被折叠的 条评论
为什么被折叠?



