APIの使い方を初心者に独自に調べろというのは
少々無理があるとは思いますが、てれてれさんのサンプル自体は
質問に対してほぼ理想的なものですよ。
>インクルードすると余計なものがついて重くなったりするから
誤解があるようですがインクルードしたファイル内の処理が
実行されない限り処理速度自体に変化はありません。
ファイルサイズの増加についても現在においてはほぼ気にする必要の無い程度の値です。
>そのような専用の変数を作るタイプのものは使いたくないし、
#deffuncで拡張命令を作る際、local変数指定を行う事で
命令終了後に指定した変数を自動で削除する事が可能です。
以下のスクリプトはてれてれさんのサンプルをモジュール化したものです。
実行後デバッグウィンドウの変数タブを見てもらえれば
変数が一切残っていない事が確認できるはずです。
#module
#include "gdi32.as"
#deffunc c_mes str _txt, local chr_str, local size
; ↓この2つの変数は命令終了後に削除されます
chr_str = _txt
dim size, 2
GetTextExtentPoint32 hdc, varptr(chr_str), strlen(chr_str), varptr(size)
pos ginfo(22) - (size(0) / 2), ginfo(23) - (size(1) / 2)
mes chr_str
return
#global
#define posx 320 ; 表示X座標
#define posy 240 ; 表示Y座標
font MSGOTHIC, 64
pos posx, posy
c_mes "テスト"
; カレントポジション確認用
color 255
line posx, 0, posx, 480
line 0, posy, 640, posy