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

简单wxWidgets有关问题,怎么程序控制wxComboBox弹出列表框

2012-04-14 
简单wxWidgets问题,如何程序控制wxComboBox弹出列表框;代码如下:C/C++ code#include wx/wx.hclass GUIFr

简单wxWidgets问题,如何程序控制wxComboBox弹出列表框;
代码如下:

C/C++ code
#include "wx/wx.h"class GUIFrame : public wxFrame{public:    wxButton* m_button;    // Virtual event handlers, overide them in your derived class    wxComboBox* m_comboBox1;    GUIFrame(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("wxWidgets Application Template"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(485, 244), long style = wxDEFAULT_FRAME_STYLE | wxTAB_TRAVERSAL);    virtual void OnButton(wxCommandEvent& event);    ~GUIFrame() {}};void GUIFrame::OnButton(wxCommandEvent& event){    m_comboBox1->SetFocus();}GUIFrame::GUIFrame(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) : wxFrame(parent, id, title, pos, size, style){    wxBoxSizer* bSizer1 = new wxBoxSizer(wxHORIZONTAL);    bSizer1->Add(0, 0, 1, wxEXPAND, 5);   //space    const int wxID_BUTTON = 65530;    const int wxID_COMBOBOX = 65531;    m_button = new wxButton(this, wxID_BUTTON, wxT("Press Me..."));    bSizer1->Add(m_button, 2, wxALL | wxALIGN_CENTER_VERTICAL, 5);    m_comboBox1 = new wxComboBox(this, wxID_COMBOBOX);    m_comboBox1->Append(wxT("1->Item1"));    m_comboBox1->Append(wxT("2->Item2"));    m_comboBox1->Append(wxT("3->Item3"));    m_comboBox1->SetSelection(0);    bSizer1->Add(m_comboBox1, 2, wxALL | wxALIGN_CENTER_VERTICAL, 5);    bSizer1->Add(0, 0, 1, wxEXPAND, 5);   //space    this->SetSizer(bSizer1);    this->Layout();    // Connect Events    this->Connect(wxID_BUTTON, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GUIFrame::OnButton));}class comboBoxApp : public wxApp{public:    virtual bool OnInit();};bool comboBoxApp::OnInit(){    wxFrame* frame = new GUIFrame(0L);    frame->Show();    return true;}IMPLEMENT_APP(comboBoxApp);


代码稍微有点多,忘谅解;因wx的文档资源较少,最近自学,遇到小问题一个,还望CSDN上面的高手解答,先谢过;
程序运行很简单,我希望
  1、按下按钮时焦点自动置于wxComboBox上:
  这个简单:m_combobox1->SetFocus();即可。
  2、自动弹出wxComboBox的下拉列表框,如图所示:
 

我翻遍了wxComboBox的方法,也没找到一个手动控制下拉列表的api,wxComboBox继承自wxControlWithItems,这个根类也没有这样的方法,google了一下听说与wxEVT_LEFT_DOWN有关,可没思路,不知道如何整,如果有人知道,还请告知,谢谢。


[解决办法]
试试能不能用wxPostEvent人工发一个wxEVT_LEFT_DOWN过去。

热点排行