ja ja ja ja ja ja ja fr de de ja fr de en ja ja ja ja de en ja ja de en ja ja ja ja ja en de en ja ja en
PrintWindowに関してはMSDNでも詳しい説明は日本語ではされていませんよね。(T.T
2008/3/3(Mon) 22:31:18|NO.13891
PrintWindowの第三引数をPW_CLIENTONLY(=1)を0にしたら理想の動作をしてくれました。
メニュー簡易配置モジュール(笑) を改良しましたのでどうぞお使いください。
(何が変わったかっていうとまぁ…アレですね"さっぱり"?まっ いっか。)
#module #uselib "user32.dll" #cfunc CreateMenu "CreateMenu" #cfunc 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:sindo=1 sdim tag,64,2:dim ct,3:dim rect,4 notesel menu id=CreateMenu() hm=id:hmenupar=id:hmenu_(sindo)=id repeat -1 noteget b,i:kk=instr(b,0,":") if kk!-1|i=notemax+1{ ct(2)=ct(1):ct(1)=ct(0):tag(1)=tag(0):h=0:k=strmid(b,kk+1,1) if ":"=k:tag(0)=strmid(b,kk+2,strlen(b)-kk-2):ct(0)=1:h=1 if "{"=k:ct(0)=2:h=1 if "}"=k:ct(0)=3:h=1 if "-"=k:ct(0)=4:h=1 if h=0&&i!notemax+1:i+:continue if ct(1)=0:i+:continue if ct(1)=1&&ct(0)=2:tag_(sindo)=tag(1) if ct(1)=1&&ct(0)!2:l+:AppendMenu Hmenu_(sindo),0,l,tag(1) if ct(1)=4&&ct(0)!2:AppendMenu Hmenu_(sindo),$800,$0,"" if ct(1)=2&&ct(2)=1:sindo+:hmenu_(sindo)=CreatePopupMenu() if ct(1)=3:sindo-:if sindo<1:sindo=1:else:AppendMenu Hmenu_(sindo),$10,hmenu_(sindo+1),tag_(sindo) } i+:if i=notemax+2:break loop SetMenu hwnd,hmenupar DrawMenuBar hwnd GetMenuItemRect hwnd,hm,0,varptr(rect) return rect(3)-rect(1) #deffunc delmenu int hm_ SetMenu hwnd,0 DestroyMenu hm_ DrawMenuBar hwnd mes hm_ return #global menu={" ::ファイル :{ ::新規(&N)\t ::開く(&O)...\tCtrl+O ::上書き保存(&S)\tCtrl+S ::名前を付けて保存(&A)... :- ::印刷(P)...\tCtrl+P :- ::終了(&X)\tCtrl+Q :} ::編集 "} menubar menu,hm
2008/3/3(Mon) 23:17:39|NO.13895
トップ | HSP3ダウンロード | HSPTVで遊ぶ | HSPで作る | サイト情報 | プライバシーポリシー | お問合せ
ONION software Copyright 1997-2021(c) All rights reserved.