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))。
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; }