温まって来たところで、dotNET+MAXscriptで実際にいろいろ作っていきたいと思います。
まずは、dotNETを使ったUIの基本。フォームの生成です。
こんな感じですね。
(
--メインフォーム設定--------------------------------------------------------------
MainFrm = dotNetObject "System.Windows.Forms.Form"
--フォームのタイトル-----------------------
MainFrm.text = "testform"
--フォームサイズ--
MainFrm.bounds = dotNetObject "system.drawing.rectangle" 50 50 200 200
--フォームを表示--
MainFrm.Show()
)
この4行でフォームが生成されます。
まず1行目。
mainFrmが生成されるフォームになるので、ここはなんの名前でもOKです。
「=」以降、ここで作るものがdotnetobjectである、というのを決めます。
たいてい、dotnetobject "なんちゃら~"でブツを作ってくれます。
2行目以降
ブツを作っただけで、中身(プロパティと言います)が空、もしくはデフォルト値なので、プロパティを決めていきます。
.text これはフォームのタイトルバー部分に表示される名前です。
.bounds これはmainFrmが表示されるx.y座標と、ウィンドウサイズの指定です。
ここで注意しないといけないのが、.boundsは直接値を入れてもいうことを聞いてくれないということです。
ブツを作った上で、その中に値を入れてあげないといけません。
dotNetObject "system.drawing.rectangle"でブツを作ってあげます。
""内は、どんなタイプのブツを作るか、という宣言なのですが、これはプロパティごとに決まってますので、随時調べて行きましょう。
プロパティによっては、.textのように値を直接入れてもOKなものも有りますが、どれがOKでどれがダメなものかまでは理解出来てませんので、
値を直接入れてダメなら、ブツが必要なんだなーくらいの認識でやっております。
値は、左から表示されるx座標、表示されるy座標、ウィンドウサイズ横、ウィンドウサイズ縦、となっています。
最後に、.show()で生成されます。
さて、次はこのフォームに画像を表示してみましょう。
画像の表示にはフォームのバックグラウンドに表示させる方法と、PictureBoxというdotNETオブジェクトを利用して表示させる方法とが有りますが、
ここは後から手を加えやすいようにPictureBoxを利用します。
(
--画像読み込み&変数定義--
mainimgfiles = "C:\\Users\\Public\\Pictures\\Sample Pictures\\sample.jpg" --表示したい画像を変数に格納--
mainimgClass = dotNetClass "System.Drawing.Image" --クラスの定義--
mainimg =(mainimgClass.FromFile mainimgfiles) --mainimgはmainimgクラスのファイル読み込みタイプでファイルのパスはmainimgfiles--
mainimgWidth = mainimg.Size.Width as integer --mainimgのサイズ(幅)を参照して、intに変換--
mainimgHeight = mainimg.Size.Height as integer --mainimgのサイズ(高さ)を参照してint型に変換--
--dotNetオブジェクトを生成--
imgview = dotNetObject "System.Windows.Forms.PictureBox" --imgviewはdotnetobjectでpictureboxを使います--
imgview.bounds = dotNetObject "system.drawing.rectangle" 0 0 mainimgWidth mainimgHeight --画像の表示位置はフォームの(0,0)の位置--
imgview.Image = mainimg --imgviewのイメージプロパティはmainimgです--
imgview.backColor = (dotNetClass "system.drawing.color").Transparent --imgviewの背景色はカラーのクラスで、透過です。--
--メインフォーム設定--------------------------------------------------------------
MainFrm = dotNetObject "System.Windows.Forms.Form"
--フォームのタイトル-----------------------
MainFrm.text = "testform"
--フォームサイズ--
MainFrm.bounds = dotNetObject "system.drawing.rectangle" 50 50 200 200
--pitureboxをフォームに追加--
MainFrm.Controls.Add imgview --mainformにimgviewを追加します。--
--フォームを表示--
MainFrm.Show()
)
初めて出てきました「dotnetClass」
これはdotNetobjectと同じく、dotNet関連の物ですよ~という宣言なのですが、
正直なところなところ正確な違いは理解出来てません。
ブツは生成せずに、型を決めてくれる・・・程度の認識です。
興味のある方はMAXのヘルプ読んでみてください。
なんとなーくやってることはわかるんじゃないでしょうか。
ドット以降はすべてdotNETobjectもしくはdotNetclassのプロパティです。
幾つか注意点として上げるならば、
7行目のimgview.boundsですが、mainFrm内に表示するので、表示位置はフォームの(0,0)となります。
ここの値を変えることで、mainFrmの右下や左下なんかに表示させることが出来ます。
また、ingview.backcolorですが、これは背景色を変えることが出来ます。
今は透過していますが、違う色に変えたい場合は”picturebox .backcolor”あたりで検索するとヒットするので
調べてみてください。
わかる範囲で質問には答えようと思ってますので、twitterでもこちらのコメントでもどうぞ。
0 件のコメント:
コメントを投稿