duilib 快速入门
duilib入门基础一 容器之 BOX、VBOX、HBOX布局及其子控件align排列方式
duilib入门基础二 HBOX容器内 子控件margin定位规则
duilib入门基础三 VBOX容器内 子控件margin定位规则
duilib入门基础四 BOX容器内 子控件margin定位规则
duilib入门基础 六 见见世面,duilib 基本控件 Button 能实现的界面一览
duilib入门基础 七 见见世面,duilib 基本控件 复选框 单选框
duilib入门基础 八 见见世面,duilib 基本控件 滑动条
duilib入门基础 九 见见世面,duilib 基本控件 组合框
duilib入门基础 十 见见世面,duilib 基本控件 选项框 OptionBox
1 打开文件
std::wstring file_type = L"文件格式(*.jpg)|(*.jpeg)|(*.bmp)|(*.png)";
LPCTSTR filter = L"*.jpg;*.jpeg;*.bmp;*.png;";
std::map<LPCTSTR, LPCTSTR> filters;
filters[file_type.c_str()] = filter;
CFileDialogEx::FileDialogCallback2 cb = nbase::Bind(&ChatroomForm::OnFileSelected, this, std::placeholders::_1, std::placeholders::_2);
CFileDialogEx* file_dlg = new CFileDialogEx();
file_dlg->SetFilter(filters);
file_dlg->SetParentWnd(m_hWnd);
file_dlg->AyncShowOpenFileDlg(cb);
OnFileSelected(BOOL ret, std::wstring file_path)
{
if (ret)
{
if (!nbase::FilePathIsExist(file_path, FALSE) || 0 == nbase::GetFileSize(file_path))
return;
std::wstring file_ext;
nbase::FilePathExtension(file_path, file_ext);
nbase::LowerString(file_ext);
if (file_ext != L".jpg"&& file_ext != L".jpeg"&&file_ext != L".bmp"&&file_ext != L".png")
{
return;
}
ui::StringHelper::Trim(file_path);
CImage img;
img.Load(file_path.c_str());
if (img.GetWidth() != 1280 && img.GetHeight() != 720)
{
ShowMsgBox(m_hWnd, L"请选择分辨率1280*720的图片", nullptr, L"提示", L"确定", L"");
return;
}
}
}
2 打开文件夹
CFileDialogEx* file_dlg = new CFileDialogEx();
std::wstring dir = file_dlg->AsyncShowChooseDirDlg(m_hWnd, L"选择文件夹");
url_edit_->SetText(dir);
CheckRecordDiskSpace(dir);
std::wstring iniPath;
iniPath = g_intliveFolderW;
iniPath.append(L"set.ini");
WritePrivateProfileString(L"Record", L"path", dir.c_str(), iniPath.c_str());