しかしコピーしているサイズはウィンドウのサイズ(非クライアントサイズを含んでいるかはちょっとわからない)はそのままなので途切れてしまいます。解決策はありますでしょうか。ご教授お願いします。
#module #uselib "user32" #func PrintWindow "PrintWindow" sptr , sptr , int #deffunc copy_window_xp int b,int a gsel a hwnd0 = hwnd gsel b PrintWindow hwnd0 , hdc ,1 redraw 1 return #global #module #uselib "user32.dll" #func CreateMenu "CreateMenu" #func CreatePopupMenu "CreatePopupMenu" #func AppendMenu "AppendMenuA" int, int, int, str #func SetMenu "SetMenu" int, int #func GetMenuItemRect "GetMenuItemRect" int, int, int, sptr #func DrawMenuBar "DrawMenuBar" int #func DestroyMenu "DestroyMenu" int #deffunc menubar str menu1,var hm menu=menu1 b="" tag_(0)="" i=0:l=0 notesel menu sindo=1 CreateMenu id=stat hm=id hmenupar=id hmenu_(sindo)=id while(i<=notemax) noteget b,i koro=instr(b,0,":") if koro!-1{ kako=gen gen=0 tag="" if ":"=strmid(b,koro+1,1){ tag=strmid(b,koro+2,strlen(b)-koro-2) gosub *kai gen=1 }else:if ">"=strmid(b,koro+1,1){ gosub *kai gen=2 }else:if "<"=strmid(b,koro+1,1){ gosub *kai gen=3 }else:if "-"=strmid(b,koro+1,1){ gosub *kai gen=4 } if gen=1&&tugi=2{ tag_(sindo)=tag } if gen=1&&tugi!2{ l+ AppendMenu Hmenu_(sindo),0,l,tag } if gen=4&&tugi!2{ AppendMenu Hmenu_(sindo),$800,$0,"" } if gen=2&&kako=1{ sindo+ CreatePopupMenu id=stat hmenu_(sindo)=id } if gen=3{ sindo- if sindo<1:sindo=1:else{ AppendMenu Hmenu_(sindo),$10,hmenu_(sindo+1),tag_(sindo) } } } i+ wend SetMenu hwnd,hmenupar DrawMenuBar hwnd dim rect,4 GetMenuItemRect hwnd, hm,0,varptr(rect) return rect(3)-rect(1) *kai ii=i+1 tugi=0 while(ii<=notemax&&flag=0) noteget b,ii koro=instr(b,0,":") if koro!-1{ if ":"=strmid(b,koro+1,1){ flag=1 tugi=1 }else:if ">"=strmid(b,koro+1,1){ flag=1 tugi=2 }else:if "<"=strmid(b,koro+1,1){ flag=1 tugi=3 }else:if "-"=strmid(b,koro+1,1){ flag=1 tugi=4 } } ii+ wend flag=0 return #deffunc delmenu int hm_; SetMenu hwnd,0 DestroyMenu hm_ DrawMenuBar hwnd mes hm_ return #global bgscr 3,200,100 ;screen 3 width ,,40,40 syscolor 15 boxf color wait 100 mm={"::ok :> ::h :< ::h "} menubar mm,ll//メニューバー配置 *k wait 100 mes stat gsel 0 color 255,255,255 boxf pos 0,0 copy_window_xp 0,3 gsel 0,1 if l=1{ color pos 12,262 sysfont 17 mes "非クライアントサイズ分だけコピーされたウィンドウがずれている" mes "コピーしているサイズは非クライアント領域も含めたウィンドウサイズ?含んでないかも" mes "したがって中途半端なところで途切れる・・・?" stop } wait 500 screen 3,400,250 delmenu ll l=1 goto *k