2010-06-08 4 views
1

wxErlang의 도움으로 MDI 응용 프로그램을 개발 중입니다. 나는 부모 프레임, wx_object로 구현이 있습니다wx_ref 및 custom wx_object 's

-module(main_frame). 
-export([new/0, init/1, handle_call/3, handle_event/2, terminate/2]). 

-behaviour(wx_object). 

.... 

을 그리고 난 너무 wx_object로 구현 된 자식 프레임을 가지고 :

난에서 활성 자식 프레임/1을 저장 호출 할
module(child_frame). 
-export([new/2, init/1, handle_call/3, handle_event/2, terminate/2]). 
-export([save/1]). 

-behaviour(wx_object). 

% some public API method 
save(Frame) -> 
    wx_object:call(Frame, save). 

.... 

부모 프레임. 이 내 코드입니다 : ActiveChild는 = [] 상태 #wx_ref는 {} 때문에

ActiveChild = wxMDIParentFrame:getActiveChild(Frame), 
case wx:is_null(ActiveChild) of 
    false -> 
    child_frame:save(ActiveChild); 
    _ -> 
    ignore 
end 

이 코드가 실패,하지만 wx_object : 전화 /이 필요 #wx_ref {} 상태는 프로세스의 PID로 설정되는 경우 어떤 우리는 부른다. 이 작업을 수행하는 올바른 방법은 무엇입니까? 필자는 상위 프레임에 pid를 가진 모든 생성 된 하위 프레임의 목록을 저장하고이 목록의 PID를 검색한다고 생각했지만 이것은 추한 것입니다.

답변

0

당신은 할 수 없습니다 (현재),
wxMDIParentFrame:getActiveChild(Frame)에서 얼랑 개체/프로세스를 얻을

당신은 당신의 상태에서 얼랑 자식 개체 및 활성 아이를 유지해야합니다, 은 물론 아마도 그것은 최신 소식 이벤트.

여기에 개선의 여지가 있습니다