因为win系统自带的滚动条太丑陋了,所以不想显示它,用鼠标中键滚动.
用static或图片模拟滚动条还没搞出来,涉及到滚动条长短和拖动距离滚动多少的问题,有难度.
在这个过程当中,掌握了一个比较重要的技巧:
用console输出消息中的各种参数,对比分析哪些是变的哪些是不变的,对比下十进制与十六进制数值,就知道哪些参数是有用的了.
如: console.log("鼠标滚轮滚动",hwnd,message,wParam,lParam)
import win.ui;
/*DSG{{*/
var winform = win.form(text="简码编程 jianma123.com";right=344;bottom=176)
winform.add(
button={cls="button";text="上滚";left=165;top=21;right=234;bottom=51;z=2};
button2={cls="button";text="下滚";left=165;top=64;right=234;bottom=94;z=3};
richedit={cls="richedit";text="richedit";left=20;top=17;right=150;bottom=134;autohscroll=false;edge=1;multiline=1;z=1};
static={cls="static";left=255;top=29;right=266;bottom=78;bgcolor=32768;notify=1;z=4};
static2={cls="static";left=29;top=142;right=76;bottom=156;bgcolor=32768;z=5}
)
/*}}*/
import console;
winform.richedit.text =
/*dfadfsadfdsfdssssssssssssssssssssdfadfsadfdsfdsssssssssssssssssssssssssssssssssssssssssssssdfadfsadfdsfdsssssssssssssssssssssssssssssssssssssssssssssdfadfsadfdsfdsssssssssssssssssssssssssssssssssssssssssssssdfadfsadfdsfdssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss*/
winform.button.oncommand = function(id,event){
//上滚动
winform.richedit.vScroll(0x0/*_SB_LINEUP*/)
}
winform.button2.oncommand = function(id,event){
//下滚动
//winform.richedit.vScroll()//ok
winform.richedit.vScroll(0x1/*_SB_LINEDOWN*/)
}
winform.richedit.wndproc = function(hwnd,message,wParam,lParam){
if(message==0x020a){
//console.log("鼠标滚轮滚动",hwnd,message,wParam,lParam)
if( tonumber(wParam,10)==7864320){
//console.log("上滚")
winform.richedit.vScroll(0x0/*_SB_LINEUP*/)
}
if( tonumber(wParam,10)==4287102976){
//console.log("下滚")
winform.richedit.vScroll(0x1/*_SB_LINEDOWN*/)
}
}
//无返回值则继续调用默认回调函数
}
winform.static.wndproc = function(hwnd,message,wParam,lParam){
if( message == 0x201/*_WM_LBUTTONDOWN*/){
console.log("左键按下")
}
if( message == 0x201/*_WM_LBUTTONDOWN*/){
console.log("左键弹起")
}
//无返回值则继续调用默认回调函数
}
winform.show()
win.loopMessage();
/*****
!richedit.vScroll() = 滚动到底部
!richedit.hScroll() = 滚动到右侧
!richedit.vScroll(_SB__) = 滚动竖向滚动条
!richedit.hScroll(_SB__) = 滚动横向滚动条
0x115/*_WM_VSCROLL*/
0x208/*_WM_MBUTTONUP*/
0x207/*_WM_MBUTTONDOWN*/
0x209/*_WM_MBUTTONDBLCLK*/
case 0x020a: //鼠标滚轮滚动
case 0x0207://按下鼠标滚轮
case 0x0208://释放鼠标滚轮
下滚 十进制522等于十六进制020a
鼠标滚轮滚动 853534 522 4287102976 31982946
鼠标滚轮滚动 853534 522 4287102976 31982946
鼠标滚轮滚动 853534 522 4287102976 31982946
上滚
鼠标滚轮滚动 853534 522 7864320 29820269
鼠标滚轮滚动 853534 522 7864320 29820268
鼠标滚轮滚动 853534 522 7864320 29820268
鼠标滚轮滚动 853534 522 7864320 29885803
*****/