拡張版ginfoモジュール †
描画フォント名の取得が結構簡単に使えるのでウィンドウ関連情報を取得するginfo()に組み込んだら尚いいと思ったので分けてみました。
0〜24番,26〜27番は元のginfo@hspで使用されますので28番以降をユーザーが自由に機能追加できます。
この他にも取得される情報を独自に追加されたら是非このモジュール(ページ)にも追加お願いします。
※HSPのバージョンアップによりginfo()で取得できる情報の増加によって使用できなくなる可能性があります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
| #module "mod_ginfo"
#undef ginfo
#define global ginfo_font ginfo(28)
#define global ginfo_objx ginfo(29)
#define global ginfo_objy ginfo(30)
#defcfunc ginfo int p1
if( __hspver__ < $3000 )|( __hspver__ > $301f ): return ginfo@hsp(-1)
mref bm, 67
switch( p1 )
case 28
dupptr typeface, varptr(bm.56), 1, 2
return typeface
case 29
case 30
return bm.p1
default
return ginfo@hsp(p1)
swend
#global
#if 0
mes ginfo_font
mes ginfo_objx
mes ginfo_objy
#endif
|
- switch-case-swendは拡張マクロの使用を有効にしていないと使えないので、エディタの設定に影響されないようにifのみを使うことにしました。 -- kz3
- 少し標準命令を変えたのも新規命令にして使っていたけどUNEFという手があったね。 -- hiroki?
- ginfo(26)とginfo(27)は、それぞれginfo_sx,ginfo_syなので使えないみたいです。 -- QIG
- hspdef.asで確認しました -- hiroki?
- ginfo_sx/ginfo_sy ないんですが・・・(汗 -- kz3
- hspdef.asにはありました。しっかりと・・・。helpmanのHSファイルにはginfo_sx,ginfo_syマクロは登録されていないようです。ginfo()の説明にも0〜24までしか載っていませんでした。実行してみた結果、次のような内容ではないかと思います。
- ginfo(12) , ginfo_winx
現在の操作先ウィンドウの初期化Xサイズが代入されています。
最初にscreen,bgscr,buffer命令で初期化された画面サイズになります。
現在の描画先ウィンドウのクライアント領域のXサイズが代入されています。(訂正案)
- ginfo(13) , ginfo_winy
現在の操作先ウィンドウの初期化Yサイズが代入されています。
最初にscreen,bgscr,buffer命令で初期化された画面サイズになります。
現在の描画先ウィンドウのクライアント領域のYサイズが代入されています。(訂正案)
- ginfo(26) , ginfo_sx
- 最初にscreen,bgscr,buffer命令で初期化された画面Xサイズになります。(追加案)
- ginfo(27) , ginfo_sy
- 最初にscreen,bgscr,buffer命令で初期化された画面Yサイズになります。(追加案)
- ginfo(24)の後に何故25が使用されていないのかが気になりますが・・・そして26,27がヘルプに載っていないのも。仕方ないので28以降を使用します^^; -- kz3
- ここで案を出しても仕方ない。 -- kz3
- あ、ページ上部のモジュールの横のリンクですがこのページでここを参照しても仕方ないです^^;直してくれた方・・・Shark++さんかな?
実はginfo()に組み入れないモジュールで取得できるモジュールも作って、そこを参考としてリンクしていたんです^^; -- kz3