【问题标题】:wxwidgets UI update: declaring window identifierwxwidgets UI 更新:声明窗口标识符
【发布时间】:2013-11-11 02:08:44
【问题描述】:

WXWIDGET UI 更新/动态事件处理问题

当前使用:wxwidgets 2.8.12GCC 4.6.2 [mingw]

我在为 wxListCtrl 进行 UI 更新时遇到问题。

在我的wxFrame 类的构造函数 中将wxListCtrl 定义为

wxListCtrl* listbox = new wxListCtrl(this, ID_LIST, wxDefaultPosition, wxSize(400,400), wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_HRULES|wxLC_VRULES);

我需要在不同的wxFrame 成员函数中更新/插入wxListCtrl 的值。

我这样做是:

void MyFrame::test()
{
    wxListCtrl* listbox = (wxListCtrl*) FindWindow(ID_LIST);
    listbox -> InsertItem(0, "1");  
    listbox -> SetItem(0, 1, "test");
}

在这样做之后,我意识到需要声明 ID_LIST,但我不确定这是如何完成的。

作为参考,我确实查找了wxwidget book,他们确实试图举一个例子,但我无法理解。

任何帮助将不胜感激。

【问题讨论】:

  • enum { ID_LIST }; 怎么样?
  • @JoachimPileborg 已解决Thanks 有效。我确实想到了enum,但在 wxwidget 中提到了将声明与自定义事件处理函数联系起来的一些内容,这增加了混乱。

标签: c++ events user-interface wxwidgets


【解决方案1】:

不是每次你想对一个小部件做某事时都调用 FindWindow,而是将指向小部件的指针存储在你的类中。

// in class definition
wxListCtrl * mylistbox 

// in constructor
mylistbox = new wxListCtrl(this, ID_LIST, ...

// in test method    
mylistbox -> InsertItem(0, "1");  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多