|
今さらのコメントですみませんが、次のβ版にて以下のマクロを使うことが出
来るようになりまして、それによって、
> メール内容表示部分において、下記ようなマクロを":","]"キーに割り当てて使って
> ますが、
> 「検索一覧」や「このメールのスレッド」でも使えるようにはならないでしょうか?
の件が実現出来るようになります。
追加した関数は多数あります。
TitleListWnd
GrepListWnd
Bypass_GetClientSize
SimulateKeyStroke2
等で、それらを駆使してリストボックスをコントロールする形になります。
---------------マクロの例-----------------------------------
loaddll "tkinfo.dll";
if( dllfunc("IsHidemaruMailMain" ) ) {
#wnd = dllfunc("TitleListWnd");
} else if( dllfunc("IsHidemaruMailGrep" ) ) {
#wnd = dllfunc("GrepListWnd");
}
if( #wnd == 0 ) {
message "エラー1";
endmacro;
}
#topindex = sendmessage( #wnd, 0x018E, 0, 0 );
#caretindex = sendmessage( #wnd, 0x019F, 0, 0 );
#itemcount = sendmessage( #wnd, 0x018B, 0, 0 );
#cywindow = dllfunc("Bypass_GetClientSize", #wnd );
#cywindow = #cywindow / 0x10000;
#itemheight = sendmessage( #wnd, 0x01A1, 0, 0 );
if( #itemheight == 0 ) {
message "エラー2";
endmacro;
}
#cy = #cywindow / #itemheight;
#topindexmax = #itemcount - #cy;
if( #topindex >= #topindexmax ) {
#n = dllfunc("SimulateKeyStroke2", #wnd, 0x28, 0, 0, 0 );
#n = dllfunc("SimulateKeyStroke2", #wnd, 0x28, 0, 0, 0 );
endmacro;
}
#topindexwant = #topindex + 2;
if( #topindexwant > #topindexmax ) {
#topindexwant = #topindexmax;
}
if( #caretindex < #topindex ) {
#n = sendmessage( #wnd, 0x0186, #topindex, 0 );
}
#count = 0;
while( #topindex < #topindexwant && #count <= #cy + 2 ) {
#n = dllfunc("SimulateKeyStroke2", #wnd, 0x28, 0, 0, 0 );
#topindex = sendmessage( #wnd, 0x018E, 0, 0 );
#count = #count + 1;
}
endmacro;
//#define VK_DOWN 0x28
//#define LB_ADDSTRING 0x0180
//#define LB_INSERTSTRING 0x0181
//#define LB_DELETESTRING 0x0182
//#define LB_SELITEMRANGEEX 0x0183
//#define LB_RESETCONTENT 0x0184
//#define LB_SETSEL 0x0185
//#define LB_SETCURSEL 0x0186
//#define LB_GETSEL 0x0187
//#define LB_GETCURSEL 0x0188
//#define LB_GETTEXT 0x0189
//#define LB_GETTEXTLEN 0x018A
//#define LB_GETCOUNT 0x018B
//#define LB_SELECTSTRING 0x018C
//#define LB_DIR 0x018D
//#define LB_GETTOPINDEX 0x018E
//#define LB_FINDSTRING 0x018F
//#define LB_GETSELCOUNT 0x0190
//#define LB_GETSELITEMS 0x0191
//#define LB_SETTABSTOPS 0x0192
//#define LB_GETHORIZONTALEXTENT 0x0193
//#define LB_SETHORIZONTALEXTENT 0x0194
//#define LB_SETCOLUMNWIDTH 0x0195
//#define LB_ADDFILE 0x0196
//#define LB_SETTOPINDEX 0x0197
//#define LB_GETITEMRECT 0x0198
//#define LB_GETITEMDATA 0x0199
//#define LB_SETITEMDATA 0x019A
//#define LB_SELITEMRANGE 0x019B
//#define LB_SETANCHORINDEX 0x019C
//#define LB_GETANCHORINDEX 0x019D
//#define LB_SETCARETINDEX 0x019E
//#define LB_GETCARETINDEX 0x019F
//#define LB_SETITEMHEIGHT 0x01A0
//#define LB_GETITEMHEIGHT 0x01A1
//#define LB_FINDSTRINGEXACT 0x01A2
//#define LB_SETLOCALE 0x01A5
//#define LB_GETLOCALE 0x01A6
//#define LB_SETCOUNT 0x01A7
|
|