wxWidgets实现文件拖放

《使用wxwidgets进行跨平台的c++开发》第11章有介绍,参考例程在samples/dnd。其实很简单,只需几步:

#include <wx/dnd.h>
class DnDialogFile : public wxFileDropTarget
{
public:
    DnDialogFile(YourDialog *pOwner) { m_pOwner = pOwner; }

    virtual bool OnDropFiles(wxCoord x, wxCoord y,
                             const wxArrayString& filenames);
private:
    //对话框类,成员TextCtrlPath保存文件路径
    YourDialog *m_pOwner;

};

bool DnDialogFile::OnDropFiles(wxCoord, wxCoord, const wxArrayString& filenames)
{
    //设置文本框内容
    m_pOwner->TextCtrlPath->SetValue(filenames[0]);
    return true;
}

在对话框初始化时调用this->SetDropTarget(new DnDialogFile(this))。

Posted by jie.lee 2010年10月10日 00:15


wxWidgets获取系统串口号

windows系统下获取存在的串口号,主要是读注册表相关键值。

void xxx::GetSerialPort()
{
    wxRegKey *m_pKey = new wxRegKey(_T("HKEY_LOCAL_MACHINE\\HARDWARE\\DEVICEMAP\\SERIALCOMM"));
    wxString strTemp;

    long l;
    bool bCont;
    wxString str;
    wxString strValue;
    Choice_com->Clear();

    bCont = m_pKey->GetFirstValue(str, l);
    while ( bCont )
    {
        m_pKey->QueryValue(str, strValue);
        Choice_com->Append(strValue);
        bCont = m_pKey->GetNextValue(str, l);
    }
    Choice_com->SetSelection(0);
    delete m_pKey;
}

 

Posted by jie.lee 2010年6月05日 01:17