用过WTL的进来聊聊,谈谈使用WTL的感受...

xiaohyy 2003-09-16 10:11:26
总之关于WTL的,大家畅所欲言...

虽然WTL没得到为软官方支持,但我还是觉得WTL还是很有前途..

正准备学习ing..
...全文
537 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohyy 2003-09-26
  • 打赏
  • 举报
回复
我在win2k下编译WTL7写的代码,不能通过。查了资料才知道wtl的一些东东需要xp的支持。。
xiaohyy 2003-09-24
  • 打赏
  • 举报
回复
希望大家谈谈经验。。偶洗耳恭听。。
LazyCamel 2003-09-22
  • 打赏
  • 举报
回复
正准备学习,可以参考的资料不多,
atEleven 2003-09-20
  • 打赏
  • 举报
回复
>>因此FrameWnd的消息比如菜单消息就只能由FrameWnd自己处理,不能像
>>mfc版本那样可以由Application View 或doc类处理

-----ATL/WTL的MSG_CHAIN可以让消息由其他类处理.WTL还因此发展出很多"消息处理"类,让窗口实现类可以继承

我觉得消息处理机制这点比MFC反而增强了.
只是它不能象MFC那样在消息链中只传递WM_COMMAND
golden_alvin 2003-09-19
  • 打赏
  • 举报
回复
非常不错的Framework,可以结合COM一起使用
zwvista 2003-09-19
  • 打赏
  • 举报
回复
最近把以前用mfc写的小游戏用wtl改写了一遍,大部分功能都已经再现了,
但也有一些功能如使用注册表及activeX控件,强制更新状态栏等功能还需要查资料。
总的感觉是比较新鲜,wtl版本与mfc版本相比总体还是比较接近的,但需要改写的地方很多

比如wtl版本的消息映射
BEGIN_MSG_MAP(CFocusPoint2View)
MSG_WM_PAINT(OnPaint)
MSG_WM_CREATE(OnCreate)
MSG_WM_DESTROY(OnDestroy)
MSG_WM_MOUSEMOVE(OnMouseMove)
MSG_WM_LBUTTONDOWN(OnLButtonDown)
MSG_WM_SIZE(OnSize)
MSG_WM_ERASEBKGND(OnEraseBkgnd)
MSG_WM_TIMER(OnTimer)
END_MSG_MAP()
由于缺乏class wizard的支持,消息映射函数的声明及实现都需要自己写,有些不习惯
有的消息映射函数的参数与mfc版本有些差别,如OnTimer
void OnTimer(UINT, TIMERPROC);

GDI方面也有些差别,wtl版本多用handle,mfc版本则多用pointer
比如mfc版本(CDC *pDC)
// Set brush to desired background color.
CBrush backBrush(RGB(255, 128, 128));
// Save old brush.
CBrush* pOldBrush = pDC->SelectObject(&backBrush);
CRect rect;
pDC->GetClipBox(&rect); // Erase the area needed.
pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush);
wtl版本
CPaintDC dc(m_hWnd);
// Set brush to desired background color.
CBrush backBrush;
backBrush.CreateSolidBrush(RGB(255, 128, 128));
// Save old brush.
HBRUSH hOldBrush = dc.SelectBrush(backBrush);
CRect rect;
dc.GetClipBox(&rect); // Erase the area needed.
dc.PatBlt(rect.left, rect.top, rect.Width(), rect.Height(), PATCOPY);
dc.SelectBrush(hOldBrush);

控件的使用也有些小差别如 mfc版本
BOOL CFocusPointView::SelectPicture()
{
CFileDialog dlg(TRUE, "bmp", m_strPicFile, OFN_HIDEREADONLY | OFN_FILEMUSTEXIST
, "Image Files(*.bmp;*.jpg;*.jpeg;*.gif)|*.bmp;*.jpg;*.jpeg;*.gif|All Files (*.*)|*.*||", this);
if(dlg.DoModal() == IDOK){
m_strPicFile = dlg.GetPathName();
return TRUE;
}
return FALSE;
}
wtl版本
BOOL CFocusPoint2View::SelectPicture()
{
CFileDialog dlg(TRUE, "bmp", m_strPicFile, OFN_HIDEREADONLY | OFN_FILEMUSTEXIST
, "Image Files(*.bmp;*.jpg;*.jpeg;*.gif)\0*.bmp;*.jpg;*.jpeg;*.gif\0All Files (*.*)\0*.*\0", m_hWnd);
if(dlg.DoModal() == IDOK){
m_strPicFile = dlg.m_szFileName;
return TRUE;
}
return FALSE;
}
toolbar statusbar的使用方法完全不同,这儿就不谈了

另外,wtl没有doc/view结构,我认为和mfc相比,这是比较显著的不同点
因此FrameWnd的消息比如菜单消息就只能由FrameWnd自己处理,不能像
mfc版本那样可以由Application View 或doc类处理

就写这么多,哪位若是对wtl感兴趣,可以从www.codeproject/wtl上查到更多的内容
xiaohyy 2003-09-18
  • 打赏
  • 举报
回复
看来用wtl的人不多。。。。
xiaohyy 2003-09-17
  • 打赏
  • 举报
回复
ding.....
flashboy 2003-09-17
  • 打赏
  • 举报
回复
估计3W行代码中,VC的例如#ifdef............@include等等就占了不少吧
csdnhbc20 2003-09-17
  • 打赏
  • 举报
回复
没用过,大虾们介绍一下(在大家都回了mfc的基础上介绍一下)。
xiaohyy 2003-09-17
  • 打赏
  • 举报
回复
>> 我的一个组件才写了3w行代码,release版就到1M了,郁闷

3w行代码还是不小了啊,呵呵
xiaohyy 2003-09-17
  • 打赏
  • 举报
回复
zai ding...
Analyst 2003-09-16
  • 打赏
  • 举报
回复
我的一个组件才写了3w行代码,release版就到1M了,郁闷
Analyst 2003-09-16
  • 打赏
  • 举报
回复
写个小程序体积是很小,写大了代码膨胀也是很厉害的。
叶子哟 2003-09-16
  • 打赏
  • 举报
回复
www.vckbase.com上有文章和资料及包
xiaohyy 2003-09-16
  • 打赏
  • 举报
回复
to LeeZi(临渊羡鱼,不如退而结网) :
当然比mfc好,至少比mfc小很多。。在用com做界面时就体现出来 了。
ttapi 2003-09-16
  • 打赏
  • 举报
回复
好是好,但是没有官方文档支持,每次弄点什么东东都要狂K那堆头文件,不爽。。。

不过速度真的很快,象是直接用的API,HOHO
LeeZi 2003-09-16
  • 打赏
  • 举报
回复
比MFC好,偶觉得。
xiaohyy 2003-09-16
  • 打赏
  • 举报
回复
up..
wxfjb 2003-09-16
  • 打赏
  • 举报
回复
www.codeproject.com上面有资料
加载更多回复(3)
内容概要:本文系统研究了基于豪猪优化算法(CPO)的多无人机协同集群在三维空间中的避障路径规划问题,聚焦于实现以最低成本为目标的航迹优化,综合考虑路径长度、飞行高度、威胁规避及转弯角度等多个关键因素。通过构建精细化的三维环境模型与多无人机协同机制,采用Matlab平台实现CPO算法的仿真与验证,充分展示了该算法在复杂动态障碍环境下的高效搜索能力与全局优化性能。研究不仅涵盖了路径规划的数学建模与目标函数设计,还深入探讨了算法的收敛特性与鲁棒性,为智能群体系统在实际场景中的应用提供了理论依据与技术支撑。; 适合人群:具备一定编程基础和优化算法背景,从事无人机系统控制、智能路径规划、群体协同、人工智能与自动化等相关领域的科研人员、高校研究生及工程技术人员。; 使用场景及目标:①应用于多无人机协同执行侦察、灾害监测、应急救援、区域巡检等复杂任务中的自主路径规划;②为智能优化算法在三维动态环境下的路径决策问题提供可复现的技术范例;③支持研究人员对CPO算法与其他主流群智能算法(如PSO、GWO、WOA等)进行性能对比与改进研究,推动路径规划技术的发展。; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点理解目标函数的多维度建模方式与CPO算法的迭代优化流程,可通过调整环境参数与约束条件进行仿真实验,对比不同算法在相同场景下的路径质量与收敛速度,从而深入掌握其优势与适用边界。
内容概要:本文围绕电动汽车参与电力系统运行备用的能力评估展开深入研究,利用Matlab代码实现对电动汽车集群提供运行备用服务的建模与仿真分析。研究重点在于量化电动汽车作为分布式灵活资源参与电网辅助服务的潜力,通过构建精细化的数学模型,分析其可调功率容量、响应速度、时空分布特性及聚合能力,并采用多面体聚合、内近似模型与闵可夫斯基和等先进方法精确刻画其可调度能力边界。研究进一步结合大规模电动汽车接入场景,探讨其在多时间尺度调度框架下参与调峰、调频等辅助服务的优化策略,评估其对提升高比例可再生能源电网灵活性与稳定性的贡献,最终通过仿真验证所提模型与方法的有效性与实用性。; 适合人群:具备电力系统分析、智能电网、新能源汽车或优化调度等相关专业背景,熟悉Matlab/Simulink仿真工具,从事科研、工程应用的高校研究生、科研人员及电力行业工程师。; 使用场景及目标:①精确评估大规模电动汽车集群在不同约束条件下可提供的运行备用容量;②研究电动汽车在日前、日内及实时调度中的动态响应能力与优化调度策略;③为高渗透率新能源电力系统提供基于移动储能的灵活性资源解决方案,支撑电网安全经济运行。; 阅读建议:建议结合Matlab代码与技术文档同步学习,重点关注多面体聚合建模、能力边界计算及优化调度算法的设计与实现,可进一步拓展至V2G(车辆到电网)、需求响应等互动场景进行二次开发与应用验证。

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧