使用CInternetSession实时获取上证指数

举报
Amrf 发表于 2019/12/17 14:58:22 2019/12/17
【摘要】 用mfc,在任务栏中实时显示上证指数:修改基于TrafficMonitor:https://github.com/zhongyang219/TrafficMonitorhttps://github.com/nlohmann/json修改:https://github.com/zhongyang219/TrafficMonitor/blob/master/TrafficMonitor/Comm...

用mfc,在任务栏中实时显示上证指数:

image.png

修改基于TrafficMonitor:

https://github.com/zhongyang219/TrafficMonitor

https://github.com/nlohmann/json

修改:

https://github.com/zhongyang219/TrafficMonitor/blob/master/TrafficMonitor/Common.h

中的GetURL实现

if (url.find(L"https") == 0) {
	pfile = (CHttpFile *)pSession->OpenURL(url.c_str(), 1, INTERNET_FLAG_SECURE |
	INTERNET_FLAG_TRANSFER_BINARY | INTERNET_FLAG_RELOAD);
}
else {
	pfile = (CHttpFile *)pSession->OpenURL(url.c_str(), INTERNET_FLAG_TRANSFER_BINARY | INTERNET_FLAG_RELOAD);
}

//TrafficMonitorDlg.cpp OnTimer中周期获取上证指数信息

wstring trade_info = L"[]";
if (!CCommon::GetURL(L"https://www.google.com/async/finance_wholepage_price_updates?ei=m_nyXYjdJoTWmAXn4rDgDQ&yv=3&async=mids:%2Fm%2F04xk2h,currencies:,_fmt:jspb", trade_info, false))
{
...
}
json trade;
std::wcout << trade_info.substr(4).c_str() << std::endl;
trade = json::parse(trade_info.substr(4));
std::string composite = trade["PriceUpdate"][0][0][0][17][4].dump();//TODO:异常处理
std::string percentage = trade["PriceUpdate"][0][0][0][17][6].dump();
percentage.erase(std::remove(percentage.begin(), percentage.end(), '"'), percentage.end());
theApp.m_composite = CCommon::StrToUnicode(composite.c_str(),false);
theApp.m_percentage = CCommon::StrToUnicode(percentage.c_str(), false);


//TaskBarDlg.cpp showInfo中绘制上证指数

draw.DrawWindowText(value_rect, theApp.m_composite.c_str(), text_colors[1], value_alignment, false);
value_rect.MoveToY(value_rect.bottom);
draw.DrawWindowText(value_rect, theApp.m_percentage.c_str(), text_colors[0], Alignment::LEFT, false);


----------Code for ?

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。