2011年6月4日土曜日

wxErlang wxTextCtrl MultiLine 複数行を表示させる

wxTextCtrlを使って、その中に複数行の文字を表示させることに成功。
その画面とソースを記載しておく。
よければ参考にしてください。

それと編集できないようにしているので、合わせてどうぞ。
改行はバックスラッシュでする。



ソース:

-module(irc2).
-export([start/0]).
-include_lib("wx.hrl").

-define(wxID_txtEdit,1000).
-define(wxID_txtUnEdit,1001).

start() ->
    Wx = wx:new(),
    Dialog = wx:batch(fun() -> create_window(Wx) end),
    wxWindow:show(Dialog),
    loop(Dialog),
    wx:destroy(),
    ok.

create_window(Wx)->
    Dialog = wxDialog:new(Wx,
-1,
"Dialog IRC",
[{size,{300,200}}]),

    TxtEdit = wxTextCtrl:new(Dialog,?wxID_txtEdit,[{pos,{1,150}},{size,{290,20}}]),

    %TxtUnAttr = wxTextAttr:new({12,23,33}),
    %wxTextAttr:setBackGroundColour(TxtUnAttr,{0,0,0}),

    % set multiline({style,?wxTE_MULTILINE})
    TxtUnEdit = wxTextCtrl:new(Dialog,?wxID_txtUnEdit,[{pos,{1,0}},{size,{290,140}},{style,?wxTE_MULTILINE}]),
    % set unable edit
    wxTextCtrl:setEditable(TxtUnEdit,false),
    % add text
    wxTextCtrl:appendText(TxtUnEdit,"Test\rTest"),
   
    % connect
    wxDialog:connect(Dialog, close_window),

    Dialog.

loop(Dialog) ->
    receive
% Window Close Event
#wx{event=#wxClose{}} ->
   io:format("~p Closing window ~n",[self()]),
   wxWindow:destroy(Dialog),
   ok
    end.