[perl]WxPerlプログラミング


WxPerlはOOPであり、MFCと同様に動作する.
Perlのクラスはpackageで区切られ、まずmainpackageが宣言されます.
package main;                             #메인클래스 선언
my $app  = Wx::SimpleApp->new;       #SimpleApp 생성
my $frame = MyFrame->new;             #프레임 생성
$frame->Show;                             #프레임 을 띄운다.
$app->MainLoop;                          #루프를 돈다.
その後、MyFrameパッケージを発表した.use base qw(Wx::Frame);と書きます.
過負荷はnew法を用いた.
大型機のnewでは、因子が受け入れられます.my $class = shift; #클래스 포인터 (c++ 에서의 this ) 를 받는다.しかも1つのルートしか必要ありません.
ルートを作成する理由は、Wx上のルートフレームにはできないことがたくさんあります.(キーなど)
パネルを敷いて、パネルで作業する必要があります.
根は机のようで、パネルは机の上の白い絵の紙です.my $root = $class->SUPER::new(undef,-1,'2048 Program', .....同様にルートを生成します.
$root->{panel}=Wx::Panel->new($root,-1,Wx::wxDefaultPosition(),Wx::wxDefaultSize(),0,);
次にパネルを作成する関数で、Perlのpackageメンバー変数が->nameで書き込まれます.
パネルのスタイルにdefaultパラメータを使用させる場合は、Enterキーまたは方向キーは使用されません.
default styleはタブに移動するスタイルを持っているので、Enterがフォーカスを持つ特殊なキーになっている可能性があります.
キーイベントでEnterまたはDirectionキーを受信する場合は、パネルスタイルのTAB TRAVERSALオプションを削除します.
今このパネルはthisになりました.$this=$root->{panel};また、イベントハンドラについて
メニューのハンドルはEVT_MENU、絵を描くハンドルはEVT_PAINTです.
これらを使用するには、上部からuse Wx::Event qw(EVT_MENU EVT_PAINT);宣言だけする各イベントはスペースで区切られます.
new関数はrootを返さなければなりません.
メソッドを記述するときにパラメータを取得する必要があります.クラスポインタとイベント変数.
これは以下の通りです.
sub OnQuit{
    my ($his,$event) = @_;
}
パネルにDCを描画すると、他のプロンプトは描画されずに消去されます.
Clear()メソッドを使用して、すべてのDCをクリアします.
参考資料を使用する場合、Perlは関数として使用されます.
WXK UPというマクロ定数はWx::WXK UP()とともに用いられる.
残りはグーグルリンとhttp://docs.wxwidgets.org/3.0/annotated.htmlにあります.
wxwidgetサイトやwxperlサイトがたくさんありますが、上のサイトが一番きれいに見えるほうがいいです.