Enterキーのイベントを拾うだけで。
キーポイントとなるところを赤字にしておくので、参照してほしい。
解説する(いつもしていないが)力がない。疲れた:-P
ソース:
-module(irc2).
-export([start/0]).
-include_lib("wx.hrl").
-define(wxID_txtEdit,1000).
-define(wxID_txtUnEdit,1001).
start() ->
Wx = wx:new(),
{Dialog,TxtEdit,TxtUnEdit} = wx:batch(fun() -> create_window(Wx) end),
wxWindow:show(Dialog),
loop(Dialog,TxtEdit,TxtUnEdit),
wx:destroy(),
ok.
create_window(Wx)->
Dialog = wxDialog:new(Wx,
-1,
"Dialog IRC",
[{size,{300,200}}]),
%[{size,?wxDefaultSize}]),
OptnTE = [{pos,{1,150}},{size,{290,20}},{style,?wxTE_PROCESS_ENTER}],
TxtEdit = wxTextCtrl:new(Dialog,
?wxID_txtEdit,
OptnTE),
% set multiline({style,?wxTE_MULTILINE})
OptnTUE = [{pos,{1,0}},{size,{290,150}},{style,?wxTE_MULTILINE}],
TxtUnEdit = wxTextCtrl:new(Dialog,
?wxID_txtUnEdit,
OptnTUE),
% set unable edit
wxTextCtrl:setEditable(TxtUnEdit,false),
% add text
%wxTextCtrl:appendText(TxtUnEdit,"Test\rTest\r"),
%wxTextCtrl:appendText(TxtUnEdit,"Append"),
% connect
wxDialog:connect(Dialog, close_window),
wxTextCtrl:connect(TxtEdit,command_text_enter),
%wxEvtHandler:connect(TxtEdit,key_down),
%wxTextCtrl:connect(TxtEdit,key_down),
%wxKeyEvent:connect(TxtEdit,key_down),
{Dialog,TxtEdit,TxtUnEdit}.
loop(Dialog,TxtEdit,TxtUnEdit) ->
receive
% Window Close Event
#wx{event=#wxClose{}} ->
io:format("~p Closing window ~n",[self()]),
wxWindow:destroy(Dialog),
ok;
#wx{event=#wxCommand{type = command_text_enter}} ->
% #wx{event=#wxKey{keyCode = ?WXK_RETURN}} ->
Msg = wxTextCtrl:getValue(TxtEdit),
io:format("String: ~p~n",[Msg]),
wxTextCtrl:appendText(TxtUnEdit,Msg),
loop(Dialog,TxtEdit,TxtUnEdit)
end.
0 件のコメント:
コメントを投稿