vc滚动条 WM_VSCROLL消息16位屏障问题
2015-11-03 11:08
288 查看
最近做了一个文本处理程序,用edit控件显示文本类容,由于是比较性的两个edit,需要一个滚动条同事控制两个edit控件滚动时间,WM_VSCROLL消息当edit行数超过65535时失效;
解决方法:void LineScroll( int nLines, int nChars = 0 );
利用 EM_LINESCROLL 信息控制 TextBox 的卷动。
在含有卷动轴的 TextBox 中, 如何以程序控制 TextBox 的卷动?
传送 EM_LINESCROLL 信息给 TextBox 控制文件,方法是调用 SendMessage API
函数,细节如下:
1. API 的声明:
Const EM_LINESCROLL = &HB6
Private Declare Function SendMessageBynum Lib "user32" Alias "
SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As
Long, ByVal lParam As Long) As Long
注:如果以上的声明放在「一般模块」底下, 应在 Const 之前加上 Public 保留
字, 并且将 Declare 之前的 Private 保留字去掉。
2. 调用范例:
ret = SendMessageBynum(Text1.hwnd, EM_LINESCROLL, 0, 1 ) ' 下卷一行
ret = SendMessageBynum(Text1.hwnd, EM_LINESCROLL, 0, -1 ) ' 上卷一行
ret = SendMessageBynum(Text1.hwnd, EM_LINESCROLL, 1, 0) ' 右卷一列
ret = SendMessageBynum(Text1.hwnd, EM_LINESCROLL, -1, 0) ' 左卷一列
ret = SendMessageBynum(Text1.hwnd, EM_LINESCROLL, 1, 1 ) ' 下卷一行且右
卷一列
注:以上的 Text1 为 TextBox 的名称。
CRichEditCtrl::LineScroll
void LineScroll( int nLines, int nChars = 0 );
参数:
说明:
此成员函数用来滚动一个多行编辑控件的文本。
编辑控件不能用来垂直滚动过编辑控件的最后一行。如果当前行的行号再加上nLines指定的行数超过了编辑控件中的总行数,则将调整这个值,以使在滚动到编辑控件中的最后一行后再滚动到控件顶部的行。
LineScroll可以水平滚动过任意行的最后一个字符。
解决方法:void LineScroll( int nLines, int nChars = 0 );
利用 EM_LINESCROLL 信息控制 TextBox 的卷动。
在含有卷动轴的 TextBox 中, 如何以程序控制 TextBox 的卷动?
传送 EM_LINESCROLL 信息给 TextBox 控制文件,方法是调用 SendMessage API
函数,细节如下:
1. API 的声明:
Const EM_LINESCROLL = &HB6
Private Declare Function SendMessageBynum Lib "user32" Alias "
SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As
Long, ByVal lParam As Long) As Long
注:如果以上的声明放在「一般模块」底下, 应在 Const 之前加上 Public 保留
字, 并且将 Declare 之前的 Private 保留字去掉。
2. 调用范例:
ret = SendMessageBynum(Text1.hwnd, EM_LINESCROLL, 0, 1 ) ' 下卷一行
ret = SendMessageBynum(Text1.hwnd, EM_LINESCROLL, 0, -1 ) ' 上卷一行
ret = SendMessageBynum(Text1.hwnd, EM_LINESCROLL, 1, 0) ' 右卷一列
ret = SendMessageBynum(Text1.hwnd, EM_LINESCROLL, -1, 0) ' 左卷一列
ret = SendMessageBynum(Text1.hwnd, EM_LINESCROLL, 1, 1 ) ' 下卷一行且右
卷一列
注:以上的 Text1 为 TextBox 的名称。
CRichEditCtrl::LineScroll
void LineScroll( int nLines, int nChars = 0 );
参数:
nLines 指定垂直滚动的行数。 nChars 指定水平滚动的字符数。如果带格式编辑控件是ES_RIGHT或ES_CENTER风格,则这个值被忽略。编辑风格在Create中指定。 |
此成员函数用来滚动一个多行编辑控件的文本。
编辑控件不能用来垂直滚动过编辑控件的最后一行。如果当前行的行号再加上nLines指定的行数超过了编辑控件中的总行数,则将调整这个值,以使在滚动到编辑控件中的最后一行后再滚动到控件顶部的行。
LineScroll可以水平滚动过任意行的最后一个字符。
相关文章推荐
- linux Shell编程入门
- 2015-11-3 IOS 开发者账号申请
- 自定义的字符串类
- 最近在急迫地找写车载无线自组织网(VANET)相关的发明专利
- android源码大放送(实战开发必备)
- InstallShield使用—菜单部分
- LeetCode--Same Tree
- 水仙花数
- stash存储
- BZOJ 1019: [SHOI2008]汉诺塔( dp )
- .net 响应文件头处理
- $(srctree) is not clean, please run 'make mrproper'
- 百度编辑器 UEditor 使用
- (仿360卸载后弹窗)Android卸载程序之后跳转到指定的反馈页面
- HDU 5534(Partial Tree-背包)
- Android常用的编码操作规范
- 利用JDBC连接服务器数据库
- InstallShield使用---安装设计界面
- 韩信点兵
- undefined reference to