上午
完成EasyWeb 书签的功能,可以添加书签显示书签(按日期分区) 单击书签可以加载相应的网址
遗留问题:加载网址时使用当前激活页 应该新打开一个标签页
学习了一点MFC界面知识
主要是文件夹浏览对话框
void CreateBrowerDialog(HWND hWnd)
{
TCHAR pathBuffer[MAX_PATH];
BROWSEINFO browserInfo;
LPITEMIDLIST itemListBrower;
::ZeroMemory(&browserInfo, sizeof(BROWSEINFO));
browserInfo.hwndOwner = hWnd;
browserInfo.pidlRoot = NULL;
browserInfo.pszDisplayName = pathBuffer;
browserInfo.lpszTitle = "选择文件目录";
browserInfo.ulFlags = BIF_RETURNONLYFSDIRS|BIF_EDITBOX ;
browserInfo.lpfn = BrowseCallbackProc;
browserInfo.lParam = NULL;
itemListBrower = ::SHBrowseForFolder(&browserInfo);
if(itemListBrower != NULL)
{
if(::SHGetPathFromIDList(itemListBrower,pathBuffer))
{
dirPath = pathBuffer;
}
}
if(itemListBrower != NULL)
{
::CoTaskMemFree(itemListBrower);
}
}
回调函数
int CALLBACK MyPublicFunction::BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
if(uMsg==BFFM_SELCHANGED||uMsg==BFFM_INITIALIZED)
{
if(uMsg==BFFM_INITIALIZED)
{
::SendMessage(hwnd,BFFM_SETSELECTION,TRUE,
LPARAM(lpData));
}
}
return 0;
}
遍历指定目录下的文件并收集 采用的是CFileFind 类,使用Vectro保存
CFileFind finder;
CString path = filePath;
path += "//*.*";
BOOL isFind = finder.FindFile(path);
while (isFind)
{
isFind = finder.FindNextFile();
if (!finder.IsDirectory())
{
CString fileName = finder.GetFileName();
CString extName = GetFileExtName(fileName);
if(IsImageFile(extName))
{
fileList.push_back(fileName);
}
}
}
finder.Close();
下午实现了CxImage 图像操作功能
1.从CxImage 加载图片到CSatic
cxImageFront.Load(buffer, publicFunction->GetCxImageOpenMode(filePath));
hdc = IDFrontPic.GetDC();
IDFrontPic.GetWindowRect(&rect);
cxImageFront.Draw2(hdc->m_hDC, 3, 3, rect.Width()- 10, rect.Height() - 10);
但刷新窗口时图片会消掉,重绘时会崩溃。
部分我做识别时可能会用到的功能
//
// CxImage 处理函数
// 柔化
BOOL MyPublicFunction::Soften(CxImage& cxImage)
{
BOOL stauts = FALSE;
long kernel[]={1,1,1,1,8,1,1,1,1};
stauts = cxImage.Filter(kernel,3,16,0);
return stauts;
}
// 亮度
BOOL MyPublicFunction::Ligh(CxImage& cxImage)
{
BOOL stauts = FALSE;
stauts = cxImage.Light(10);
return stauts;
}
// 暗度
BOOL MyPublicFunction::Darken(CxImage& cxImage)
{
BOOL stauts = FALSE;
stauts = cxImage.Light(-10);
return stauts;
}
// 对比度+
BOOL MyPublicFunction::ContrastAdd(CxImage& cxImage)
{
BOOL stauts = FALSE;
stauts = cxImage.Light(0, 10);
return stauts;
}
// 对比度-
BOOL MyPublicFunction::ContrastSub(CxImage& cxImage)
{
BOOL stauts = FALSE;
stauts = cxImage.Light(0, -10);
return stauts;
}
// 黑白二值化
BOOL MyPublicFunction::TwoValue(CxImage& cxImage, int nLevel)
{
BOOL stauts = FALSE;
stauts = cxImage.Threshold(nLevel);
return stauts;
}
//