首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

向TextEdit控件添加垂直滚动条

在Windows应用程序开发中,向TextEdit控件(通常是多行编辑控件)添加垂直滚动条是一个常见的需求。以下是如何在不同的开发环境中实现这一功能的详细步骤。

使用Win32 API

如果你在使用Win32 API进行开发,可以通过设置控件的样式来添加垂直滚动条。

步骤:

  1. 创建多行编辑控件
    • 使用CreateWindowEx函数创建一个多行编辑控件,并设置ES_MULTILINEWS_VSCROLL样式。
代码语言:javascript
复制
#include <windows.h>

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow) {
    const wchar_t CLASS_NAME[] = L"Sample Window Class";

    WNDCLASS wc = { };

    wc.lpfnWndProc = WindowProc;
    wc.hInstance = hInstance;
    wc.lpszClassName = CLASS_NAME;

    RegisterClass(&wc);

    HWND hwnd = CreateWindowEx(
        0,
        CLASS_NAME,
        L"Sample Window",
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
        NULL,
        NULL,
        hInstance,
        NULL
    );

    if (hwnd == NULL) {
        return 0;
    }

    ShowWindow(hwnd, nCmdShow);

    MSG msg = { };
    while (GetMessage(&msg, NULL, 0, 0)) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return 0;
}

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
    switch (uMsg) {
        case WM_CREATE: {
            HWND hEdit = CreateWindowEx(
                0, L"EDIT", NULL,
                WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL,
                10, 10, 300, 200,
                hwnd, (HMENU)1, GetModuleHandle(NULL), NULL
            );
            break;
        }
        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
    }
    return DefWindowProc(hwnd, uMsg, wParam, lParam);
}

使用MFC(Microsoft Foundation Classes)

如果你在使用MFC进行开发,可以通过设置编辑控件的样式来添加垂直滚动条。

步骤:

  1. 在资源编辑器中添加编辑控件
    • 打开资源编辑器,添加一个多行编辑控件,并在属性窗口中设置MultilineVertical Scroll属性。
  2. 在对话框类中关联控件
    • 在对话框类的头文件中添加一个成员变量来关联编辑控件。
代码语言:javascript
复制
class CMyDialog : public CDialogEx {
public:
    CMyDialog(CWnd* pParent = nullptr);

#ifdef AFX_DESIGN_TIME
    enum { IDD = IDD_MYDIALOG };
#endif

protected:
    virtual void DoDataExchange(CDataExchange* pDX);

protected:
    HICON m_hIcon;
    CEdit m_editCtrl;

    virtual BOOL OnInitDialog();
    DECLARE_MESSAGE_MAP()
};
  1. 在对话框类的实现文件中初始化控件
代码语言:javascript
复制
BOOL CMyDialog::OnInitDialog() {
    CDialogEx::OnInitDialog();

    m_editCtrl.SubclassDlgItem(IDC_MYEDIT, this);
    m_editCtrl.SetWindowText(_T("This is a multiline edit control with vertical scroll bar."));

    return TRUE;
}

使用WinForms(C#)

如果你在使用WinForms进行开发,可以通过设置TextBox控件的属性来添加垂直滚动条。

步骤:

  1. 在设计器中添加TextBox控件
    • 打开设计器,添加一个TextBox控件,并在属性窗口中设置Multiline属性为trueScrollBars属性为Vertical
  2. 在代码中初始化控件(如果需要):
代码语言:javascript
复制
public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();

        textBox1.Multiline = true;
        textBox1.ScrollBars = ScrollBars.Vertical;
        textBox1.Text = "This is a multiline TextBox with vertical scroll bar.";
    }
}
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MFC 控件编程之水平滚动条垂直滚动条

MFC 控件编程之水平滚动条垂直滚动条 一点水平滚动条的操作   首先在操作滚动条的时候.我们要知道滚动条的一些属性. 比如我们要设置 最大值 最小值....而我们在对话框一启动就要进行控件初始化.下方看下结构. typedef struct tagSCROLLINFO { UINT cbSize; 自身大小...参数三就是当前滚动条类.所以我们可以使用 封装好的方法.用来获取当前信息.以及设置当前位置到这个滚动条上面. 2.一个正常使用的垂直滚动条的完整代码. void C滚动条Dlg::OnHScroll(UINT...GetScrollInfo(&结构) 我们的结构的标志要设置为获取全部信息的标志.   5.创建一个变量.保存当前状态中的垂直滚动条的位置.   6.通过SWITCH 语句.判断不同的滚动条消息....也就是设置位置.SetScrollPos(新的位置) 四丶垂直滚动条的使用 垂直滚动条跟水平滚动条是一样的.只不过处理的消息不一样了.下方特贴一份源码.学习源码即可.跟上面一样. int ChyperlinkDlg

2.7K40

滚动条的颜色_Java滚动条里面怎么添加控件

说明: 设置或检索滚动条3D表面(ThreedFace)的颜色。(演示) 语法: scrollbar-highlight-color :color 参数: color : 指定颜色。...说明: 设置或检索滚动条3D界面的亮边(ThreedHighlight)颜色。(演示) 语法: scrollbar-arrow-color :color 参数: color : 指定颜色。...说明: 设置或检索滚动条方向箭头的颜色。当滚动条出现但不可用时,此属性失效。(演示) 语法: scrollbar-shadow-color :color 参数: color : 指定颜色。...说明: 设置或检索滚动条3D界面的暗边(ThreedShadow)颜色。 语法: scrollbar-3d-light-color :color 参数: color : 指定颜色。...说明: 设置或检索滚动条亮边框颜色。 语法: scrollbar-base-color :color 参数: color : 指定颜色。 说明: 设置或检索滚动条基准颜色。

84820

python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例

PyQt5多行文本框控件QTextEdit简介 QTextEdit类是一个多行文本框控件,可以显示多行文本内容,当文本内容超出控件显示范围时,可以显示水平个垂直滚动条,Qtextedit不仅可以用来显示文本还可以用来显示...#创建两个按钮 self.btnPress1=QPushButton('显示文本') self.btnPress2=QPushButton('显示HTML') #实例化垂直布局...layout=QVBoxLayout() #相关控件添加垂直布局中 layout.addWidget(self.textEdit) layout.addWidget(...\n单击按钮') def btnPress2_clicked(self): #以Html的格式输出多行文本框,字体红色,字号6号 self.textEdit.setHtml("<font...本文主要讲解了PyQt5多行文本框控件QTextEdit详细使用方法实例,更多关于PyQt5控件知识与实例请查看下面的相关链接

2.2K51

(六十九)c#Winform自定义控件-垂直滚动条

前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章。...目前支持ScrollableControl,TreeView,TextBox的滚动条,只需要在相应的界面上添加组件ScrollbarComponent即可 准备工作 用到了(一)c#Winform自定义控件...-基类控件 ,如果你还不了解,可以先去看一下 自定义滚动条有2种方式,1:拦截windows消息,重绘,2:做一个新的,盖上去挡着,这里我们采用的是第二种。...txt_KeyDown; 30 } 31 control_SizeChanged(control, null); 32 } 33 处理一下控件什么时候添加滚动条...,什么时候移除滚动条,以及滚动条位置大小的改变等 1 void control_Disposed(object sender, EventArgs e) 2 { 3

1.7K20

PyQT模块、类、控件介绍

要么通过按向上/向下键增加/减少当前显示值,要么直接将值输入到输入框中 QScrollBar窗口控件 提供了一个水平的或垂直滚动条 QSlider控件 提供了一个垂直的或水平的滑动条 QComboBox...ComboBox 下拉组合框 FontComboBox 字体组合框 LineEdit 单行文本框 TextEdit 多行文本框 PlainTextEdit 纯文本编辑框 SpinBox 数字选择控件...横向滚动条 VerticalScrollBar 垂直滚动条 HorizontalSlider 横向滑块 VerticalSlider 垂直滑块 KeySequenceEdit 按键编辑框 Display...ProgressBar 进度条 HorizontalLine 水平线 VerticalLine 垂直线 OpenGLWidget 开放式图形库工具 控件命名规范 控件名称 命名 控件名称 命名...Label lab ListView lv LineEdit ledit ListWidget lw TextEdit tedit TreeView tv PlainTextEdit pedit TreeWidget

49531

PyQt5-Qt Designer中控件的尺寸相关设置(sizePolicy策略)

:self.控件.sizeHint().height()self.控件.sizeHint().width()获取textEdit期望尺寸:图片图片print(f"获取控件textEdit的期望尺寸的高度...:{self.textEdit.sizeHint().height()}")print(f"获取控件textEdit的期望尺寸的宽度:{self.textEdit.sizeHint().width()}...textEdit的期望尺寸的高度:192获取控件textEdit的期望尺寸的宽度:256获取控件pushButton的期望尺寸的高度:34获取控件pushButton的期望尺寸的宽度:47获取控件pushButton...4 示例拖动一个水平布局:图片拖动一个树控件到水平布局,此时会铺满整个布局:图片再拖动一个面板控件,此时如下:图片而以上两个部件的水平和垂直策略都是Expanding,水平和垂直伸展都是0,各占50%空间...;我们调整下左边树控件占比三分之一,右边面板控件占比三分之二:水平和垂直策略都是Expanding,树控件的水平和垂直伸展都设置1,面板控件水平和垂直伸展都设置2即可;图片图片再在右边的面板控件拖动几个标签和文本

2.2K50

【QT】显示类控件

显示类控件 1. label - 标签 QLabel 可以⽤来显⽰⽂本和图片,核⼼属性如下: 代码示例1: 显示不同格式的⽂本 代码示例2:显示图片 虽然 QPushButton 也可以通过设置图标的...LCD Number - 显示数字的控件 QLCDNumer 是⼀个专⻔⽤来显⽰数字的控件。类似于 “⽼式计算器” 的效果。...并且能在内容超出编辑框范围时⾃动提供滚动条. 核⼼属性 核心信号 代码示例1:获取多⾏输⼊框的内容 1)创建⼀个多⾏输⼊框和⼀个label 2)给多⾏输⼊框添加 slot 函数....这⼏个控件⽤法⾮常相似, 我们以 QDateTimeEdit 为例进⾏介绍....设置 - 减⼩ value, 设置 = 增加 value;默认情况下滑动条可以通过 ⽅键 或者 pageUp / pageDown 调整大小。

7710

【愚公系列】2023年11月 Winform控件专题 Panel控件详解

当子控件增加或减少时,Panel控件会相应地增加或缩小,以确保不会出现滚动条并保持自身大小合适。GrowOnly属性:与GrowAndShrink属性类似,但是只允许Panel控件一个方向增加大小。...作为动态添加控件的容器,可以通过代码动态添加控件,实现动态加载和删除控件的功能。...例如,在Form_Load事件处理程序中添加以下代码:ScrollBar vScrollBar = new VScrollBar(); //创建垂直滚动条vScrollBar.Dock = DockStyle.Right...; //将滚动条停靠在Panel的右侧panel1.Controls.Add(vScrollBar); //将滚动条添加到Panel中处理滚动条的事件,以便当用户滚动Panel时,其内容会相应地移动。....VerticalScroll.Value = e.NewValue; //将Panel的垂直滚动位置设置为滚动条的值}这是一个简单的使用Winform中Panel控件的完整案例。

1.5K11

Python Qt GUI设计:窗口布局管理方法【强化篇】(基础篇—6)

四种布局方式对应四个布局类: 水平布局类(QHBoxLayout),可以把所添加控件在水平方向上依次排列; 垂直布局类(QVBoxLayout),可以把所添加控件垂直方向上依次排列; 网格布局类(...QGridLayout),可以把所添加控件以网格的形式排列; 表单布局类(QFormLayout),可以把所添加控件以两列的形式排列。...5.1、在布局中添加其他布局 整个例子,首先全局布局采用的是水平布局,局部布局采用的分别是水平布局、垂直布局、网格布局和表单布局,准备4个QWidget控件:hwg、vwg、gwg和formlayout...这时候就需要在控件添加布局。 5.2、在控件添加布局 在控件添加布局,可以不管有多少种局部布局,只需要一个空白控件,然后在这个空白控件中进行多种布局就可以实现嵌套布局的效果。...formlayout.addWidget( QPushButton(str(11)) ) formlayout.addWidget( QPushButton(str(12)) ) # 这里局部布局内添加部件

3.9K40

二、Qt定时器与文本编辑器制作《QT 入门到实战》

此时我们可以点击整个整个窗口,给整个窗口一个垂直布局,给与垂直布局后,这个窗体内的所有空间将会遵从于这个布局,会使整个空间占据整个宽度,那么在运行之后拖动窗体改变窗体大小,由于窗体内的控件遵循垂直布局的规则...,那么窗体内的控件将会遵循父窗体的大小而发生改变,这样就很好的解决了窗口过大、过小而不能更改的问题了。...此时点击整个窗体程序: 选中整个窗体后,这个窗体将会在周围又蓝色小点代表选中,接下来我们点击对应的垂直布局: 点击完毕后整个空间将会占满窗体(这是因为只有一个控件的原因): 接着我们给与对应的菜单添加按钮功能...接着我们加入打开文件的 menu : 再接着添加对应的另存为 menu : 还有一个新建文件 menu 忘记添加了,在此添加上: 再接着我们更改一下对应的菜单名称,在 ui 设计窗口右上角更改对应的打开和另存为...的文本: QString text = ui->textEdit->toPlainText(); 创建一个 QByteArray 对象,并且将 textEdit 的文本转为 QByteArray: QByteArray

99020

WPF 如何判断一个控件滚动条的里面是用户可见

我有一个控件,这个控件放在滚动条里面,如果在滚动条滚动到这个控件可以被用户看见的时候,我能知道这个事件,或从什么时机可以拿到用户可以看见的范围修改?...在 ScrollChangedEventArgs 提供了多个属性用于拿到当前的滚动条的可见的宽度和高度,滚动条的水平移动和垂直的移动,具体请看下图 在用户修改外层控件的宽度或高度让滚动条的高度或宽度进行修改的时候...首先需要知道这个控件在外层的垂直或水平偏移,也就是这个控件在外层控件的左上角坐标是多少,然后还需要知道这个控件的宽度和高度,这样就可以知道这个控件的外接矩形,拿到一个元素在外层控件的左上角坐标可以通过拿到这个控件的...// 控件的宽度和高度 var controlBounds = new Rect(top, control.DesiredSize); 此时计算滚动条的用户可见的大小,通过滚动条的水平和垂直移动加上宽度和高度...我在滚动添加了一个控件,在里面添加了很多文本,其中有一个是歪楼的文本 <ScrollViewer ScrollChanged="ScrollViewer_OnScrollChanged"

92220
领券