首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于事件event的有关问题

2012-02-13 
关于事件event的问题定义如下函数voidCWxFrame::OnButtonStart(wxCommandEvent&WXUNUSED(event)){m_oStart

关于事件event的问题
定义如下函数
void   CWxFrame::OnButtonStart(wxCommandEvent   &   WXUNUSED(event))
{
    m_oStart.Run(oRunningList);
    ...   ...
}

在GUI上点击Start按钮,程序开始工作,并输出结果.

现在想直接使用Run方法,不需要点击Start按钮,输出结果.

可是不点击Start,无法触发event,也就无法输出结果,但是程序实际上是运行了的,因为使用了Run.   怎样让这个事件总是处于触发的状态呢?

[解决办法]
// user code sending the event

void MyWindow::SendEvent()
{
wxCommandEvent event( wxEVT_MY_EVENT, GetId() );
event.SetEventObject( this );
// Give it some contents
event.SetText( wxT( "Hallo ") );
// Send it
GetEventHandler()-> ProcessEvent( event );
}

///////////////////////////////////////////////////////

reference: http://www.wxwidgets.org/manuals/stable/wx_eventhandlingoverview.html

[解决办法]
第一、可以直接调那个消息响应函数OnButtonStart(wxCommandEvent & WXUNUSED(event))
第二、发送消息::PostMessage( m_Hwnd, WM_COMMAND, MAKEWPARAM(IDC_BTN_START,0),0);

热点排行