|
 | ̤²ò·è |
 | ²ò·è |
 | Ää»ß |
 | ºï½üÍ×ÀÁ |
|
2015/1/1(Thu) 21:36:45|NO.66792
cats¤µ¤ó¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£
¤³¤ì¤Ï»ä¤ÎͽÁۤʤΤǤ¹¤¬¡¢¡¢¡¢
Íó¤¬ÁªÂò¤µ¤ì¤¿¤é¡¢inputÌ¿ÎáÅù¤Ç°ì»þŪ¤ËÆþÎϥܥ寥¹¤ò¥ê¥¹¥È¥Ó¥å¡¼¤ÎÍó¤Î¾å¤ËºîÀ®¡¢
¥Õ¥©¡¼¥«¥¹¤¬³°¤ì¤¿¤éÆþÎϥܥ寥¹¤òºï½ü¡¢¤È¤¤¤¦»ÅÁȤߤʤΤǤ·¤ç¤¦¤«¡©
±Ñ¸ì¤¬¶ì¼ê¤Ê¼Ô¤Ç¡¢cats¤µ¤ó¤ËÍê¤Ã¤Æ¤Ð¤«¤ê¤Ç¿½¤·Ìõ¤Ê¤¤¤Ç¤¹¡£
|
|
2015/1/1(Thu) 21:56:25|NO.66793
mod=0
onclick gosub *click
onkey gosub *key
pos 0,0 :mes "¤³¤Î²èÌ̤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡¢¥Æ¥¥¹¥È¤òÄɲ䷤Ƥ¯¤À¤µ¤¤¡£"
stop
//----¥¯¥ê¥Ã¥¯¤Î¾ì
*click
if mod=0{
mod=1
sdim moz
posx=mousex
posy=mousey
pos posx,posy :input moz,120,20 :ID_ipt=stat
objsel ID_ipt
return
}
if mod=1{
if mousex<posx | mousey<posy | mousex>posx+120 | mousey>posy+20{ ;°ã¤¦¾ì½ê¤¬ÁªÂò¤µ¤ì¤¿¤é
pos posx,posy :mes moz
clrobj ID_ipt,ID_ipt
mod=0
return
}
}
return
//----¥¡¼¤Î¾ì¹ç
*key
if mod=0{
mod=1
sdim moz
posx=mousex
posy=mousey
pos posx,posy :input moz,120,20 :ID_ipt=stat
objsel ID_ipt
return
}
if mod=1{
if wparam=13{
pos posx,posy :mes moz
clrobj ID_ipt,ID_ipt
mod=0
return
}
}
return
»ä¤¬»×¤Ã¤Æ¤¤¤ë¥¤¥á¡¼¥¸¤Ï¤³¤ó¤Ê´¶¤¸¤Ç¤¹¡£
|
|
2015/1/1(Thu) 22:15:26|NO.66795
¤Ï¤¤¡¢¥ê¥¹¥È¥Ó¥å¡¼¤Î¾å¤Ë¥¤¥ó¥×¥Ã¥È¥Ü¥Ã¥¯¥¹¤òºîÀ®¤·¤Æ¤¤¤Þ¤¹¡£
¤¿¤À¤·¡¢¥¢¥¤¥Æ¥à¤Î°ÌÃÖ¡¢¥«¥é¥à¤ÎÉý¤ä¥Õ¥©¥ó¥È¥µ¥¤¥º¤Ê¤É¤Ë¹ç¤ï¤»¤ÆÆþÎϥܥ寥¹¤òºîÀ®¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¥«¥é¥à¤ÎÉý¤È¹Ô¤Î¥µ¥¤¥º¤ÏSendMessage¤Ç¼èÆÀ¤Ç¤¤Þ¤¹¡£
¤¿¤À¡¢¥Þ¥¦¥¹¥«¡¼¥½¥ë¾å¤Ë¤¢¤ë¥¢¥¤¥Æ¥à¤ò¼èÆÀ¤Ç¤¤ë¤«¤È¤¤¤¦ÌäÂ꤬¤¢¤ê¤Þ¤¹¡£
GetWindowRectÅù¤Ç·×»»¤¹¤ë¤Î¤â¹Í¤¨¤Þ¤·¤¿¤¬¡¢¥ê¥¹¥È¥Ó¥å¡¼¤Ê¤Î¤Ç¾å²¼º¸±¦¤Ë¥¹¥¯¥í¡¼¥ë¤¹¤ë²ÄǽÀ¤â¤¢¤ê¤Þ¤¹¡£
¥ê¥ó¥¯À褬C++¤È´·¤ì¤Ê¤¤¸À¸ì¤Ê¤Î¤ÇÆÉ¤à¤Î¤Ë»þ´Ö¤¬¤«¤«¤ê¤Þ¤¹¡£
¥¤¥á¡¼¥¸¤È¤·¤Æ¤Ï a ¤µ¤ó¤Î¹Í¤¨¤Æ¤¤¤ë¤â¤Î¤Ç¹ç¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢ÌäÂê¤Ï¤½¤ì¤ò¤É¤¦¼ÂÁõ¤¹¤ë¤«¤Ç¤¹¤Í¡£
|
|
2015/1/2(Fri) 09:29:07|NO.66798
¾¯¤·¤Ð¤«¤ê·ë²ÌÊó¹ð¤Ç¤¹¡£
¸½ºß¡¢¥Þ¥¦¥¹²¼¤Ë¤¢¤ë¥¢¥¤¥Æ¥à¤Ï¼èÆÀ¤Ç¤¤Æ¤¤¤Þ¤»¤ó¤¬¡¢
¥ê¥¹¥È¥Ó¥å¡¼¤Î¾å¤ÎÍó¤ÎÉôʬ¤À¤±¤Ë¥ª¥Ö¥¸¥§¥¯¥È¤òÇÛÃ֤Ǥ¤Þ¤·¤¿¡£
#include "gdi32.as"
#include "llmod3/llmod3.hsp"
#include "llmod3/listview.hsp"
#include "llmod3/img.hsp"
//----¥Þ¥¯¥í
#const WM_NOTIFY 0x004E ;¥á¥Ã¥»¡¼¥¸ÍÑ
#const LVS_EDITLABELS 0x0200 ;ÊÔ½¸¤ò²Äǽ¤Ë¤¹¤ë(ÃͤòÄ´¤Ù¤ë¤Î¤Ë¤«¤Ê¤ê¶ìÏ«¤·¤¿¡£)
#const LVN_BEGINLABELEDIT $FFFFFF97 ;¥á¥Ã¥»¡¼¥¸ÍÑ
//----
#uselib "user32.dll"
#func CreateWindowExA "CreateWindowExA" int, sptr, sptr, int, int, int, int, int, int, int, int, int
#cfunc CreateWindowExW "CreateWindowExW" int, wptr, wptr, int, int, int, int, int, int, int, int, int
#const LVM_GETHEADER $0000101F
#const HDM_GETITEMCOUNT $00001200
//----¥ê¥¹¥È¥Ó¥å¡¼¤ÎÉý¤òÊѹ¹¤¹¤ë¤¿¤á¤Î¤â¤Î
#const HDN_FIRST -300
#const HDN_DIVIDERDBLCLICKW -300 ;¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¼èÆÀ
#const HDN_ITEMCLICK -302
#const HDN_DIVIDERDBLCLICK -305
#const HDN_BEGINTRACK -306
#const HDN_ENDTRACK -307
#const HDN_TRACK -308
#const HDN_GETDISPINFO -309
#const HDN_BEGINDRAG -310
#const HDN_ENDDRAG -311
oncmd gosub *NOTIFY,WM_NOTIFY ;³ä¤ê¹þ¤ß
//----¥ê¥¹¥È¥Ó¥å¡¼ºîÀ®
pos 100,100
listview 400,200,$310009 | LVS_EDITLABELS
id=stat :hwd=objinfo_hwnd(id)
listaddcl 0,"test1",100,2
listaddcl 1,"test2",100
listaddcl 2,"test3",100
repeat 5
listadd 0,"¤¢¤¤¤¦¤¨¤ª",0
listadd 1,"¤«¤¤¯¤±¤³",0
listadd 0,"¤µ¤·¤¹¤»¤½",1
listadd 1,"¤¿¤Á¤Ä¤Æ¤È",1
listadd 0,"¤Ê¤Ë¤Ì¤Í¤Î",2
listadd 1,"¤Ï¤Ò¤Õ¤Ø¤Û",2
loop
//----¥¤¥ó¥×¥Ã¥È¥Ü¥Ã¥¯¥¹¡©
sendmsg hwd,LVM_GETHEADER,0,0
_hwnd=stat
CreateWindowExA 1,"Edit","¥³¥á¥ó¥È",$50000000,300,0,60,22,_hwnd
hwd2=stat
GetStockObject 17
sendmsg hwd2, $30, stat
stop
//----WM_NOTIFY¥á¥Ã¥»¡¼¥¸
*NOTIFY
dupptr nmhdr,lparam,12 ; NMHDR ¹½Â¤ÂΤγä¤êÅö¤Æ
;if nmhdr.0!=hwd :return
//----ÊÔŬÍÑ
if nmhdr.2=-106{
dupptr a,lparam,64
sendmsg hwd,0x1006/*LVM_SETITEMA*/,0,varptr(a)+12
}
//----ÊÔ½¸³«»Ï»þ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë
if LVN_BEGINLABELEDIT=nmhdr.2 {
dupptr nmhdr,lparam,64
}
//----Éý¤ÎÊѹ¹¤ò̵¸ú²½
switch nmhdr.2
case HDN_BEGINTRACK
case HDN_TRACK
case HDN_ITEMCLICK
case HDN_DIVIDERDBLCLICKW
;dupptr nmhdr,lparam,20 ;¹½Â¤Âγä¤êÅö¤Æ¡¡nmhdr.3=ÁªÂò¤µ¤ì¤Æ¤¤¤ë¥«¥é¥àNo
return -1 ;̵»ë¤¹¤ë
swbreak
swend
return 0
¹¹¤Ë±þÍѤ·¤Æ¡¢¥ê¥¹¥È¤ÎÉôʬ¤Ë¤â¥¤¥ó¥×¥Ã¥È¥Ü¥Ã¥¯¥¹¤òÇÛÃÖ¡£¤ß¤¿¤¤¤Ê»ö¤¬½ÐÍ褽¤¦¤Ê´¶¤¸¤¬¤·¤Þ¤¹¡£
¤·¤«¤·¤¤¤¯¤é¥ª¥Ö¥¸¥§¥¯¥È¤òÇÛÃ֤Ǥ¤¿¤È¤·¤Æ¤â¡¢ÁªÂò¤µ¤ì¤Æ¤¤¤ë¹àÌܤ¬¸«¤Ä¤«¤é¤Ê¤±¤ì¤Ð°Ọ̵̃¤¤¤Ç¤¹¤Í¡£
¤â¤¦¾¯¤·ÊÙ¶¯¤·¤Æ¤ß¤Þ¤¹¡£

| |
|
2015/1/2(Fri) 21:22:58|NO.66814
¥Þ¥¦¥¹²¼¤Ë¤¢¤ë¥»¥ë¡Ê¥¢¥¤¥Æ¥à¡Ë¤ò¼èÆÀ¤¹¤ë¤Ë¤Ï¡¢sendmsg ¤Ç¥ê¥¹¥È¥Ó¥å¡¼¤Ë LVM_SUBITEMHITTEST ¤òÁ÷¤Ã¤Æ¤¢¤²¤ì¤ÐÎɤ¤¤½¤¦¤Ç¤¹¡£
»ØÄꤷ¤¿ºÂɸ¤¬¥ê¥¹¥È¥Ó¥å¡¼¤Î¤É¤Î¥»¥ëÆâ¤Ë¤¤¤ë¤«¤¬µ¢¤Ã¤Æ¤¤Þ¤¹¡£
»²¹Í¤Ë¤·¤¿¥Ú¡¼¥¸
http://wtpage.info/program/section012.html
°Ê²¼¤Ï¡¢¥ê¥¹¥È¥Ó¥å¡¼¤¬¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤µ¤ì¤¿¤È¤¡¢¤É¤Î¥»¥ë¤¬ÁªÂò¤µ¤ì¤¿¤«¤ò¼èÆÀ¤¹¤ë¥µ¥ó¥×¥ë¤Ç¤¹¡£
¡ÊÁ°¤Î¼ÁÌä¤Î¡ÖÊÔ½¸²Äǽ¤Ê¥ê¥¹¥È¥Ó¥å¡¼¡×¤«¤é¥¹¥¯¥ê¥×¥È¤ò°úÍѤµ¤»¤ÆÄº¤¤Þ¤·¤¿¡£¡Ë
#include "llmod3/llmod3.hsp"
#include "llmod3/listview.hsp"
#include "llmod3/img.hsp"
// ÄɲÃ
#uselib "user32.dll"
#func global GetCursorPos "GetCursorPos" sptr
#func global ScreenToClient "ScreenToClient" sptr,sptr
//----¥Þ¥¯¥í
#const WM_NOTIFY 0x004E ;¥á¥Ã¥»¡¼¥¸ÍÑ
#const LVS_EDITLABELS 0x0200 ;ÊÔ½¸¤ò²Äǽ¤Ë¤¹¤ë(ÃͤòÄ´¤Ù¤ë¤Î¤Ë¤«¤Ê¤ê¶ìÏ«¤·¤¿¡£)
oncmd gosub *NOTIFY,WM_NOTIFY ;³ä¤ê¹þ¤ß
// ÄɲÃ
#define ListView_SubItemHitTest(%1,%2) sendmsg %1,0x1039/*LVM_SUBITEMHITTEST*/,0,varptr(%2)
//----¥ê¥¹¥È¥Ó¥å¡¼ºîÀ®
listview 400,200,$110009 | LVS_EDITLABELS
id=stat :hwd=objinfo_hwnd(id)
listaddcl 0,"test1",100,2
listaddcl 1,"test2",100
listaddcl 2,"test3",500 // Êѹ¹
listadd 0,"¤¢¤¤¤¦¤¨¤ª",0
listadd 1,"¤«¤¤¯¤±¤³",0
listadd 0,"¤µ¤·¤¹¤»¤½",1
listadd 1,"¤¿¤Á¤Ä¤Æ¤È",1
listadd 0,"¤Ê¤Ë¤Ì¤Í¤Î",2
listadd 1,"¤Ï¤Ò¤Õ¤Ø¤Û",2
// ÄɲÃ
mes "¥»¥ë¤ò¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¡ª"
stop
//----WM_NOTIFY¥á¥Ã¥»¡¼¥¸
*NOTIFY
dupptr nmhdr,lparam,12 ; NMHDR ¹½Â¤ÂΤγä¤êÅö¤Æ
if nmhdr.0!=hwd :return
if nmhdr.2=-106{
dupptr a,lparam,64
sendmsg hwd,0x1006/*LVM_SETITEMA*/,0,varptr(a)+12
dialog a
}
// ÄɲÃ
if nmhdr.2=-3/*NM_DBLCLK*/ {
dim pt,2
GetCursorPos varptr(pt) // ¢« ¥«¡¼¥½¥ë¤Î°ÌÃÖ¤ò¼èÆÀ
gcp=pt(0),pt(1)
ScreenToClient hwd, varptr(pt) // ¢« ¥«¡¼¥½¥ë°ÌÃÖ¤ò¥ê¥¹¥È¥Ó¥å¡¼¤ÎºÂɸ°ÌÃÖ¤ËÊÑ´¹
stc=pt(0),pt(1)
dim lvHitInfo,6
lvHitInfo(0)=pt(0),pt(1)
ListView_SubItemHitTest hwd, lvHitInfo // ¢« ¥ê¥¹¥È¥Ó¥å¡¼¤ÎºÂɸ°ÌÃÖ¤¬¡¢¤É¤Î¥»¥ëÆâ¤Î¤â¤Î¤«¤ò¼èÆÀ¡Ê¥Þ¥¯¥í¡Ë
dialog strf("GetCursorPos(%d,%d), ScreenToClient(%d,%d)\n\n¡¡¢ª ListViewCell(%d,%d)", gcp(0), gcp(1), stc(0), stc(1), lvHitInfo(3), lvHitInfo(4) )
}
return 0
»î¤·¤Æ¤ß¤¿¸Â¤ê¤Ç¤¹¤È¡¢¥¹¥¯¥í¡¼¥ë¥Ð¡¼¤¬¤¢¤ë¾ì¹ç¤Ï¥¹¥¯¥í¡¼¥ëÎ̤ò²ÃÌ£¤·¤Æ¤É¤Î¥»¥ëÆâ¤Ë¤¤¤ë¤«¤òÊÖ¤·¤Æ¤¯¤ì¤ë¤ß¤¿¤¤¤Ç¤¹¡£

| |
|
2015/1/2(Fri) 21:35:33|NO.66815
>MIZUSHIKI ¤µ¤ó
¥¹¥ì¼ç¤Ç¤Ï¤Ê¤¤¤Ç¤¹¤¬¡¢¤³¤ó¤ÊÄê¿ô¤¬¤¢¤Ã¤¿¤È¤Ï¶Ã¤¤Þ¤·¤¿¡£
¤³¤ì¤ò»È¤¨¤ÐÈæ³ÓŪ´Êñ¤Ëºî¤ì¤Þ¤¹¤Í¡£
|
|
2015/1/3(Sat) 20:34:48|NO.66845
>>MIZUSHIKI¤µ¤ó
¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡ª
»ä¤âcats¤µ¤ó¤ÈƱ¤¸¤¯¡¢ListView_SubItemHitTest¤ò»È¤Ã¤Æ´Êñ¤Ë½ÐÍè¤ë¤³¤È¤Ë¶Ã¤¤Þ¤·¤¿¡£
¤¢¤È¤Ï¥ê¥¹¥ÈÆâ¤ËÆþÎϥܥ寥¹¤òÀßÃÖ¤¹¤ë»ö¤¬ÌäÂê¤Ë¤Ê¤Ã¤Æ¤¤Þ¤¹¤Í¡£
¤¢¤È¡¢¥ê¥¹¥È¥Ó¥å¡¼¤Î¥¹¥¿¥¤¥ë¤ÎLVS_EDITLABELS¤ò¾Ã¤·¤Æ¤·¤Þ¤¦¤È¡¢ÊÔ½¸¤¬³«»Ï¤µ¤ì¤¿ÄÌÃΡÖLVN_BEGINLABELEDIT¡×¤¬
¼èÆÀ¤Ç¤¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢¥Ç¥Õ¥©¥ë¥È¤ÇºîÀ®¤µ¤ì¤ëÆþÎϥܥ寥¹¤òºï½ü¤¹¤ë»ö¤âÌäÂê¤Ç¤¹¤Í¡£
½ÐÍ褽¤¦¤Êµ¤¤¬¤·¤Þ¤¹¤¬¡¢¾¯¤·Ä´¤Ù¤Æ¤ß¤Þ¤¹¡£
|
|
2015/1/4(Sun) 00:36:58|NO.66850
/*²£Áä¡Êɽ·×»»¥½¥Õ¥È¤Î¤è¤¦¤Ê¥»¥ë¤Îɽ¼¨ÊýË¡¡©¡Ë
ttp://fs-cgi-basic01.freespace.jp/~hsp/ver3/hsp3.cgi?print+200610/06100013.txt
ÍÑÅӤˤè¤Ã¤Æ¤ÏÎɤ¤¤«¤âÃΤì¤Þ¤»¤ó¡£*/
|
|
2015/1/4(Sun) 13:23:54|NO.66860
>>fortunehill¤µ¤ó
¼«Ê¬¤ÇÁ´Éôºî¤Ã¤Á¤ã¤¦¤ß¤¿¤¤¤Ê´¶¤¸¤Ç¤¹¤Í¡£
¤â¤·¡¢¥ê¥¹¥È¥Ó¥å¡¼¤ò¼«ºî¤¹¤ë¤È¤·¤Æ¡¢Yoshi¤µ¤ó¤â¶Ä¤Ã¤Æ¤¤¤ë¤è¤¦¤Ë¡¢¥Þ¥¹Ìܤνê¤Ï¤É¤¦¤ä¤Ã¤Æºî¤Ã¤Æ¤¤¤ë¤ó¤Ç¤·¤ç¤¦¤«¤Í¡£
|
|
2015/1/4(Sun) 13:36:57|NO.66861
¥ê¥¹¥È¥Ó¥å¡¼¤Î¥µ¥Ö¥¢¥¤¥Æ¥à¤ÎÊÔ½¸¤Ç¤¹¤¬¡¢¤â¤¦¾¯¤·¹Í¤¨¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£
#include "llmod3/llmod3.hsp"
#include "llmod3/listview.hsp"
#include "llmod3/img.hsp"
#uselib "user32.dll"
#func global GetCursorPos "GetCursorPos" sptr
#func global ScreenToClient "ScreenToClient" sptr,sptr
#func CreateWindowExA "CreateWindowExA" int, sptr, sptr, int, int, int, int, int, int, int, int, int
#cfunc CreateWindowExW "CreateWindowExW" int, wptr, wptr, int, int, int, int, int, int, int, int, int
#func GetWindowText "GetWindowTextA" int,int,int
#func MoveWindow "MoveWindow" int,int,int,int,int,int ;°ÌÃÖ¤ÎÊѹ¹
#uselib "gdi32.dll"
#func DeleteObject "DeleteObject" int ;¥ª¥Ö¥¸¥§¥¯¥Èºï½ü
#func GetStockObject "GetStockObject" int ;¥ª¥Ö¥¸¥§¥¯¥Èºï½ü
//----¥Þ¥¯¥í
#const WM_NOTIFY 0x004E ;¥á¥Ã¥»¡¼¥¸ÍÑ
#const LVS_EDITLABELS 0x0200 ;ÊÔ½¸¤ò²Äǽ¤Ë¤¹¤ë(ÃͤòÄ´¤Ù¤ë¤Î¤Ë¤«¤Ê¤ê¶ìÏ«¤·¤¿¡£)
oncmd gosub *NOTIFY,WM_NOTIFY ;³ä¤ê¹þ¤ß
#define ListView_SubItemHitTest(%1,%2) sendmsg %1,0x1039/*LVM_SUBITEMHITTEST*/,0,varptr(%2)
#const LVN_BEGINLABELEDIT $FFFFFF97 ;ÊÔ½¸¤¬³«»Ï¤µ¤ì¤¿ ;ÄɲÃ
#const LVM_GETEDITCONTROL 0x1018
#const LVM_GETHEADER $0000101F ;¥«¥é¥àÉôʬ¤Î¥Ï¥ó¥É¥ë¼èÆÀÍÑ
#const HDM_GETITEMCOUNT $00001200
#define LVM_GETITEMA 4101 ;¹àÌܥƥ¥¹¥È¼èÆÀÍÑ
#define LVM_SETITEMA 4102 ;¹àÌܥƥ¥¹¥ÈºÆÀßÄêÍÑ
//----¥ê¥¹¥È¥Ó¥å¡¼ºîÀ®
listview 400,200,$310009 | LVS_EDITLABELS
id=stat :hwd=objinfo_hwnd(id)
listaddcl 0,"test1",100,2
listaddcl 1,"test2",100
listaddcl 2,"test3",100 // Êѹ¹
repeat 10
listadd 0,"¤¢¤¤¤¦¤¨¤ª",0
listadd 1,"¤«¤¤¯¤±¤³",0
listadd 0,"¤µ¤·¤¹¤»¤½",1
listadd 1,"¤¿¤Á¤Ä¤Æ¤È",1
listadd 0,"¤Ê¤Ë¤Ì¤Í¤Î",2
listadd 1,"¤Ï¤Ò¤Õ¤Ø¤Û",2
loop
stop
//----WM_NOTIFY¥á¥Ã¥»¡¼¥¸
*NOTIFY
dupptr nmhdr,lparam,12 ; NMHDR ¹½Â¤ÂΤγä¤êÅö¤Æ
if nmhdr.0!=hwd :return
if nmhdr.2=-106{
//----¥Æ¥¥¹¥È¤Î¼èÆÀ
mod=0 ;¥â¡¼¥ÉÊѹ¹
sdim text
GetWindowText HWND_input,varptr(text),64
;dialog text
//----¥Æ¥¥¹¥È¤òÀßÄê
dim lvi,9
lvi=1,lvHitInfo(3),lvHitInfo(4),0,0,varptr(text),64
lvi = 1
sendmsg hwd,LVM_GETITEMA+1,0,varptr(lvi)
;dupptr a,lparam,64
;sendmsg hwd,0x1006/*LVM_SETITEMA*/,0,varptr(a)+12
}
//----ÊÔ½¸¤¬³«»Ï¤µ¤ì¤¿
if nmhdr.2=LVN_BEGINLABELEDIT{
//ÆþÎϥܥ寥¹¤Î¥Ï¥ó¥É¥ë¤ò¼èÆÀ
sendmsg nmhdr.0 , LVM_GETEDITCONTROL , 0,0 ;ÆþÎϥܥ寥¹¤Î¥Ï¥ó¥É¥ë¤ò¼èÆÀ
HWND_input=stat
//
dim pt,2
GetCursorPos varptr(pt) // ¢« ¥«¡¼¥½¥ë¤Î°ÌÃÖ¤ò¼èÆÀ
gcp=pt(0),pt(1)
ScreenToClient hwd, varptr(pt) // ¢« ¥«¡¼¥½¥ë°ÌÃÖ¤ò¥ê¥¹¥È¥Ó¥å¡¼¤ÎºÂɸ°ÌÃÖ¤ËÊÑ´¹
stc=pt(0),pt(1)
dim lvHitInfo,6
lvHitInfo(0)=pt(0),pt(1)
ListView_SubItemHitTest hwd, lvHitInfo // ¢« ¥ê¥¹¥È¥Ó¥å¡¼¤ÎºÂɸ°ÌÃÖ¤¬¡¢¤É¤Î¥»¥ëÆâ¤Î¤â¤Î¤«¤ò¼èÆÀ¡Ê¥Þ¥¯¥í¡Ë
;dialog strf("GetCursorPos(%d,%d), ScreenToClient(%d,%d)\n\n¡¡¢ª ListViewCell(%d,%d)", gcp(0), gcp(1), stc(0), stc(1), lvHitInfo(3), lvHitInfo(4) )
//----¼èÆÀ¤·¤¿¥¢¥¤¥Æ¥à¤Î¥Æ¥¥¹¥È¤ò¼èÆÀ
sdim text
dim lvi,9
lvi=5,lvHitInfo(3),lvHitInfo(4),0,0,varptr(text),64
sendmsg hwd,LVM_GETITEMA,0,varptr(lvi)
;dialog text
mod=2 ;ÊÔ½¸¥â¡¼¥É
return
}
if mod{ ;ÊÔ½¸¥â¡¼¥ÉľÁ°¤Î½èÍý(LVN_BEGINLABELEDIT½èÍýľÁ°¤À¤È¡¢ÆþÎϥܥ寥¹¤¬ºîÀ®¤µ¤ì¤ÆÌµ¤¤¤Î¤Ç¡¢ºîÀ®¤µ¤ì¤¿¸å¤Ë¼Â¹Ô)
if mod=2{ ;ºîÀ®Ä¾Á°°ì²ó¤À¤±¼Â¹Ô
sendmsg HWND_input,0x000C,64,varptr(text) ;ÆþÎϥܥ寥¹¤ÎÆâÍÆ¤òÊѹ¹
mod=1
}
MoveWindow HWND_input,lvHitInfo.0,lvHitInfo.1,60,20,1 ;ÆþÎϤµ¤ì¤ë¤È¥ª¥Ö¥¸¥§¥¯¥È¤¬°Üư¤µ¤ì¤ë¤Î¤Ç¡¢¸ÇÄꤹ¤ë¡£
}
return 0
¥µ¥Ö¥¢¥¤¥Æ¥à¤ò¥¯¥ê¥Ã¥¯¤·¡¢ÊÔ½¸¤µ¤»¤ë¤³¤È¤Ï½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢¸å¤â¤¦°ìÊâ¤Î¤È¤³¤í¤Çíµ¤¤¤Æ¤¤¤Þ¤¹¡£
ÆþÎϥܥ寥¹¤Î°ÌÃ֤ȥµ¥¤¥º¤ÏÊѹ¹¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢
ÆþÎϥܥ寥¹¤ò¥¢¥¤¥Æ¥à¤Î¥µ¥¤¥º¤Ë¹ç¤ï¤»¤ë»ö¤È¡¢ÊÔ½¸Ãæ¤Î»þ¤Ëº¸¤Î¥¢¥¤¥Æ¥à¤Î¥Æ¥¥¹¥È¤¬¾Ã¤¨¤Æ¤·¤Þ¤¦»ö¤Çº¤¤Ã¤Æ¤¤¤Þ¤¹¡£

| |
|
2015/1/4(Sun) 20:00:03|NO.66872
>ÆþÎϥܥ寥¹¤ò¥¢¥¤¥Æ¥à¤Î¥µ¥¤¥º¤Ë¹ç¤ï¤»¤ë
LVM_GETSUBITEMRECT¤Ç¤¤¤±¤Ê¤¤¤Ç¤¹¤«¡©
>ÊÔ½¸Ãæ¤Î»þ¤Ëº¸¤Î¥¢¥¤¥Æ¥à¤Î¥Æ¥¥¹¥È¤¬¾Ã¤¨¤Æ¤·¤Þ¤¦»ö¤Çº¤¤Ã¤Æ¤¤¤Þ¤¹¡£
LVS_EDITLABELS¤ËÍê¤é¤º¤Ë¼«Ê¬¤Çinput¤ò½èÍý¤¹¤ë¤è¤¦¤Ë¤¹¤ì¤Ð¤¤¤¤¤Î¤Ç¤Ï¡£
¥¯¥ê¥Ã¥¯¤µ¤ì¤¿¥¢¥¤¥Æ¥à¤¬´û¤Ë¥Õ¥©¡¼¥«¥¹¾õÂ֤ʤéÊÔ½¸¥â¡¼¥É¤ËÆþ¤ê¡¢
¥¨¥ó¥¿¡¼¤ò²¡¤¹¤«input¤«¤é¥Õ¥©¡¼¥«¥¹¤¬³°¤ì¤¿¤È¤¤ËÊÔ½¸¥â¡¼¥É¤ò½ªÎ»¤È¤¤¤¦É÷¤Ë¡£
LVN_ITEMCHANGINGÆâ¤ÇLVM_GETNEXTITEM¤ò»È¤¨¤Ð¥¯¥ê¥Ã¥¯Ä¾Á°¤Î¥Õ¥©¡¼¥«¥¹¤Î¾õÂÖ¤¬¤ï¤«¤ë¤ó¤¸¤ã¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£
|
|
2015/1/5(Mon) 13:46:47|NO.66882
>>LVS_EDITLABELS¤ËÍê¤é¤º¤Ë¼«Ê¬¤Çinput¤ò½èÍý¤¹¤ë¤è¤¦¤Ë¤¹¤ì¤Ð¤¤¤¤¤Î¤Ç¤Ï¡£
¤¹¤ß¤Þ¤»¤ó¸À¤¤Ëº¤ì¤Æ¤¤¤Þ¤·¤¿¡£
¥ê¥¹¥È¥Ó¥å¡¼¤Î¹àÌܲèÌ̤Υ¦¥£¥ó¥É¥¦¥Ï¥ó¥É¥ë¤¬Ê¬¤«¤é¤Ê¤«¤Ã¤¿¤â¤Î¤Ç¡¢
Á°²ó¤Î²óÅú¤Î¤è¤¦¤Ë¥¨¥Ç¥£¥Ã¥È¥Ü¥Ã¥¯¥¹¤Î¥Ï¥ó¥É¥ë¤ò¼èÆÀ¤·¤Æ¿§¡¹¤ä¤Ã¤Æ¤Þ¤·¤¿¡£
YTT¤µ¤ó¤¬¶Ä¤Ã¤Æ¤¤¤ë»ö¤¬¡¢¥ê¥¹¥È¥Ó¥å¡¼¤Î¹àÌܲèÌ̤Υ¦¥£¥ó¥É¥¦¥Ï¥ó¥É¥ë¤¬
´û¤Ëʬ¤«¤Ã¤Æ¤¤¤ë¤â¤Î¤À¤È¤¹¤ì¤Ð¡¢¤É¤¦¤ä¤Ã¤Æ¥ê¥¹¥È¥Ó¥å¡¼¤Î¹àÌܲèÌ̤Υ¦¥£¥ó¥É¥¦¥Ï¥ó¥É¥ë
¤ò¼èÆÀ¤¹¤ë¤Î¤Ç¤·¤ç¤¦¤«¡©
»ä¤Î¸À¤Ã¤Æ¤¤¤ë»ö¤¬¤ª¤«¤·¤«¤Ã¤¿¤é¿½¤·Ìõ¤Ê¤¤¤Ç¤¹¡£
|
|
2015/1/5(Mon) 16:07:00|NO.66884
YTT»á¤ò»²¹Í¤Ë
°Æ¡
#include "llmod3/llmod3.hsp"
#include "llmod3/listview.hsp"
#include "llmod3/img.hsp"
#uselib "user32"
#func MoveWindow "MoveWindow" int,int,int,int,int
#func SetWindowText "SetWindowTextA" int,prefstr
listview 400,200,$210201
hList=objinfo_hwnd(stat)
listaddcl 0,"test1",100,2
listaddcl 1,"test2",100
listaddcl 2,"test3",100
repeat 10
listadd 0,"¤¢¤¤¤¦¤¨¤ª",0
listadd 1,"¤«¤¤¯¤±¤³",0
listadd 0,"¤µ¤·¤¹¤»¤½",1
listadd 1,"¤¿¤Á¤Ä¤Æ¤È",1
listadd 0,"¤Ê¤Ë¤Ì¤Í¤Î",2
listadd 1,"¤Ï¤Ò¤Õ¤Ø¤Û",2
loop
mref text,65
LVITE=1,0,0,0,0,varptr(text),1024
oncmd gosub *WM_NOTIFY,$4e
stop
;-------------------------------------------------------------------------------
*WM_NOTIFY
dupptr code,lparam,112
if code=hList {
if code(2)=-121 {;LVN_HOTTRACK
rect=2,code(4),0,0
return
}
if code(2)=-105 {;LVN_BEGINLABELEDIT
LVITE(2)=rect(1)
sendmsg hList,4141,code(4),varptr(LVITE)
sendmsg hList,(rect(1)>0)*42+4110,code(4),varptr(rect)
sendmsg hList,4120
hEdit=stat
SetWindowText hEdit
return
}
if code(2)=-106 {;LVN_ENDLABELEDIT
code(5)=LVITE(2)
sendmsg hList,4102,,varptr(code(3))
hEdit=0
return
}
if hEdit {
MoveWindow hEdit,rect,rect(1),rect(2)-rect,rect(3)-rect(1)
}
}
return
°Æ¢¡¡¢¨¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤ÇÊÔ½¸
#include "llmod3/llmod3.hsp"
#include "llmod3/listview.hsp"
#include "llmod3/img.hsp"
#uselib "user32"
#func MoveWindow "MoveWindow" int,int,int,int,int
#func SetWindowLong "SetWindowLongA" int,int,int
#func ShowWindow "ShowWindow" int,int
listview 400,200,$210001
hList=objinfo_hwnd(stat)
listaddcl 0,"test1",100,2
listaddcl 1,"test2",100
listaddcl 2,"test3",100
repeat 10
listadd 0,"¤¢¤¤¤¦¤¨¤ª",0
listadd 1,"¤«¤¤¯¤±¤³",0
listadd 0,"¤µ¤·¤¹¤»¤½",1
listadd 1,"¤¿¤Á¤Ä¤Æ¤È",1
listadd 0,"¤Ê¤Ë¤Ì¤Í¤Î",2
listadd 1,"¤Ï¤Ò¤Õ¤Ø¤Û",2
loop
mref text,65
LVITE=1,0,0,0,0,varptr(text),1024
input text
obj=stat
hEdit=objinfo_hwnd(stat)
SetWindowLong hEdit,-20
ShowWindow hEdit
oncmd gosub *WM_NOTIFY,$4e
stop
;-------------------------------------------------------------------------------
*WM_NOTIFY
dupptr code,lparam,112
if code=hList {
if code(2)=-3 {;NM_DBLCLK
rect=2,code(4),0,0
LVITE(2)=code(4)
sendmsg hList,4141,code(3),varptr(LVITE)
sendmsg hList,(rect(1)>0)*42+4110,code(3),varptr(rect)
MoveWindow hEdit,rect,rect(1),rect(2)-rect,rect(3)-rect(1)
ShowWindow hEdit,1
objprm obj,text
objsel obj
return
}
if code(2)=-100 {;LVN_ITEMCHANGING
objsel -1
if stat=obj {
oncmd 0
sendmsg hList,4102,,varptr(LVITE)
ShowWindow hEdit
oncmd 1
}
}
}
return

| |
|
2015/1/5(Mon) 20:11:46|NO.66885
>¤É¤¦¤ä¤Ã¤Æ¥ê¥¹¥È¥Ó¥å¡¼¤Î¹àÌܲèÌ̤Υ¦¥£¥ó¥É¥¦¥Ï¥ó¥É¥ë¤ò¼èÆÀ¤¹¤ë¤Î¤Ç¤·¤ç¤¦¤«¡©
¥ê¥¹¥È¥Ó¥å¡¼¤Î¥Ï¥ó¥É¥ë¤Ï¤¹¤Ç¤Ëobjinfo_hwnd¤Ç¼èÆÀ¤·¤Æ¤¤¤Þ¤¹¤è¤Í¡£
¹àÌܲèÌ̤Ȥ¤¤¦¤Î¤¬¥¢¥¤¥Æ¥à¤ä¥µ¥Ö¥¢¥¤¥Æ¥à¤Î¤³¤È¤Ê¤é¡¢¤½¤ì¤é°ì¤Ä°ì¤Ä¤Ë¥¦¥¤¥ó¥É¥¦¤Ê¤É¤¢¤ê¤Þ¤»¤ó¡£
¥ê¥¹¥È¥Ó¥å¡¼Á´ÂΤǰì¤Ä¤Î¥¦¥¤¥ó¥É¥¦¤Ç¤¹¡£
»Ò¥¦¥¤¥ó¥É¥¦¤È¤·¤Æ¥Ø¡¼¥À¡¼¥³¥ó¥È¥í¡¼¥ë(°ìÈÖ¾å¤Î¥¿¥¤¥È¥ëÉôʬ¡Ë¤Ï¤¢¤ê¤Þ¤¹¤¬¡£
¤Ê¤ó¤È¤Ê¤¯¥µ¥ó¥×¥ëºî¤Ã¤Æ¤ß¤Þ¤·¤¿
¤Á¤ç¤Ã¤È¤Þ¤ÀÊѤʤȤ³¤í¤â¤¢¤ê¤Þ¤¹¤¬»²¹Í¤Ë¤Ï¤Ê¤ë¤È»×¤¤¤Þ¤¹¡£
#include "llmod3/llmod3.hsp"
#include "llmod3/listview.hsp"
#include "llmod3/img.hsp"
#undef charupper
#undef charlower
#include "user32.as"
#define SW_HIDE $00000000
#define SW_SHOW $00000005
#define WM_COMMAND $00000111
#define WS_CLIPCHILDREN $02000000
listview 400,200,$310009|WS_CLIPCHILDREN
hList=objinfo_hwnd(stat)
listaddcl 0,"test1",100,2
listaddcl 1,"test2",100
listaddcl 2,"test3",100
repeat 10
listadd 0,"¤¢¤¤¤¦¤¨¤ª",0
listadd 1,"¤«¤¤¯¤±¤³",0
listadd 0,"¤µ¤·¤¹¤»¤½",1
listadd 1,"¤¿¤Á¤Ä¤Æ¤È",1
listadd 0,"¤Ê¤Ë¤Ì¤Í¤Î",2
listadd 1,"¤Ï¤Ò¤Õ¤Ø¤Û",2
loop
dim point,2
dim rect,4
dim lvhittestinfo ,6
dim lvitem,9
cfocus=-1
sdim text,1000
input text,0,0
obj=stat
hEdit=objinfo_hwnd(stat)
SetParent hEdit,hList
ShowWindow hEdit,SW_HIDE
oncmd gosub *WM_NOTIFY,$4e
oncmd gosub *ONCOMMAND,WM_COMMAND
stop
;-------------------------------------------------------------------------------
*WM_NOTIFY
#define LVM_SUBITEMHITTEST $00001039
#define LVM_GETSUBITEMRECT $00001038
#define LVIR_LABEL $00000002
#define LVIF_TEXT $00000001
#define LVM_GETITEM $00001005
#define LVM_SETITEM $00001006
#define LVM_GETNEXTITEM $0000100C
#define LVNI_FOCUSED $00000001
#define LVN_ITEMCHANGING $FFFFFF9C
#define NM_CLICK $FFFFFFFE
#define NM_KILLFOCUS $FFFFFFF8
#define EN_KILLFOCUS $00000200
#define WM_SETTEXT $0000000C
#define WM_GETTEXT $0000000D
dupptr code,lparam,12
if code=hList {
if code(2)=NM_CLICK {
sendmsg hList,LVM_GETNEXTITEM,-1,LVNI_FOCUSED
if stat<0:return
if stat!=cfocus:return
GetCursorPos varptr(point)
ScreenToClient hList, varptr(point)
lvhittestinfo=point(0),point(1)
sendmsg hList,LVM_SUBITEMHITTEST,0,varptr(lvhittestinfo)
rect=LVIR_LABEL,lvhittestinfo(4),0,0
sendmsg hList,LVM_GETSUBITEMRECT,lvhittestinfo(3),varptr(rect)
lvitem=LVIF_TEXT,lvhittestinfo(3),lvhittestinfo(4),0,0,varptr(text),1000
sendmsg hList,LVM_GETITEM,0,varptr(lvitem)
MoveWindow hEdit,rect,rect(1),rect(2)-rect,rect(3)-rect(1),1
ShowWindow hEdit,SW_SHOW
objprm obj,text
objsel obj
return
}
if code(2)=LVN_ITEMCHANGING {
sendmsg hList,LVM_GETNEXTITEM,-1,LVNI_FOCUSED
if stat<0:return 0
cfocus=stat
return 0
}
}
return
*ONCOMMAND
if lparam==hEdit{
if (wparam>>16&0xffff)=EN_KILLFOCUS{
sendmsg hEdit,WM_GETTEXT,1000,varptr(text)
lvitem=LVIF_TEXT,lvhittestinfo(3),lvhittestinfo(4),0,0,varptr(text),1000
sendmsg hList,LVM_SETITEM,0,varptr(lvitem)
ShowWindow hEdit,SW_HIDE
cfocus=-1
}
}
return

| |
|
2015/1/5(Mon) 20:16:08|NO.66886
A¤µ¤óYTT¤µ¤ó¡¢¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£
¤¢¤È¡¢¥µ¥ó¥×¥ë¤Þ¤Çºî¤Ã¤Æ¤¤¤¿¤À¤¤¤Æ¡¢ËÜÅö¤Ë¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡ª
̵»ö²ò·è¤·¤Þ¤·¤¿¡£
>>»Ò¥¦¥¤¥ó¥É¥¦¤È¤·¤Æ¥Ø¡¼¥À¡¼¥³¥ó¥È¥í¡¼¥ë(°ìÈÖ¾å¤Î¥¿¥¤¥È¥ëÉôʬ¡Ë¤Ï¤¢¤ê¤Þ¤¹¤¬¡£
¤Æ¤Ã¤¤ê¡¢¥¢¥¤¥Æ¥à¤ÎÉôʬ¤¬»Ò¥¦¥£¥ó¥É¥¦¤Ê¤Î¤«¤È»×¤Ã¤Æ¤¤¤Þ¤·¤¿¡£
»ä¤Î´ª°ã¤¤¿½¤·Ìõ¤Ê¤¤¤Ç¤¹¡£
|
|