mfc中 picture control 如何接受一个BMP 谢谢各位GG

dcl000 2006-05-09 03:51:37
我在个DLG里 有3个控件。 tree list control picture control 。我想在tree遍历出一个指定盘符下的一个固定的文件夹。(比如就显示出D\\pic)。展开节点显示文件夹里的内容。用个list control把这些文件都显示出来。现在我想做的是怎么在list里 截获双击事件点图片文件,在picture里显示出来,我没弄明白。。希望高手帮帮我好吗。我在线等 425164371我的QQ.
...全文
1235 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dcl000 2006-05-11
  • 打赏
  • 举报
回复
能在QQ或MSDN上再请教你吗..我搞的很郁闷。..没实现..QQ174025260
Snow_Ice11111 2006-05-11
  • 打赏
  • 举报
回复
pStaic->GetDC()->StretchBlt......==>pStatic->GetDC()->StretchBlt......
--------------------------------------------------------
都说了:就算把图片显示出来,但用户一移动窗口或窗口被其他窗口挡住后,图片就没了,因为窗口一发生重绘,辛辛苦苦画的图就消失了。
dcl000 2006-05-11
  • 打赏
  • 举报
回复
//list 的双击事件

void CTreeViewDlg::OnNMDblclkList(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: Add your control notification handler code here
CRect lRect;
CDC dcMem;
BITMAP bm;
CBitmap hcbmp;
CWnd *pStatic = NULL;
pStatic = GetDlgItem(IDC_STATIC_PIC1);
//装载资源
HBITMAP hbmp=(HBITMAP)::LoadImage (::AfxGetInstanceHandle(),"c:\\bground.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
hcbmp.Attach(hbmp);
hcbmp.GetBitmap(&bm);

dcMem.CreateCompatibleDC(GetDC());
CBitmap *poldBitmap=(CBitmap*)dcMem.SelectObject(hbmp);
pStatic->GetClientRect(&lRect);
//显示位图
pStaic->GetDC()->StretchBlt(lRect.left ,lRect.top ,lRect.Width(),lRect.Height(),
&dcMem,0 ,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
dcMem.SelectObject(&poldBitmap);

*pResult = 0;

}
我在双击事件了写了这样的代码.是怎么不对呢.为什么还是不行.哪出错了??
Snow_Ice11111 2006-05-10
  • 打赏
  • 举报
回复
把文件夹中图片都加在工程资源中既不现实也不合理,而且你上面的方法就算把图片显示出来,但用户一移动窗口或窗口被其他窗口挡住后,图片就没了。
  可以从CStatic派生一个类,在类的WM_ERASEBKGND消息响应中画图。画图的大致代码可参考:
http://community.csdn.net/Expert/topic/4505/4505149.xml?temp=.7063867

dcl000 2006-05-10
  • 打赏
  • 举报
回复
void CTreeViewDlg::OnNMDblclkList(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: Add your control notification handler code here
*pResult = 0;
CWnd* pic = GetDlgItem( IDC_STATIC_PIC1 );
DrewBMP(pic->GetDC());
}

BOOL CTreeViewDlg::DrewBMP(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);//加载位图

BITMAP bmp;
bitmap.GetBitmap(&bmp);

//创建DC,兼容DC
CDC dcCompatible;
dcCompatible.CreateCompatibleDC(pDC);//和当前DC兼容
dcCompatible.SelectObject(&bitmap);//把位图选到兼容DC中,确定显示大小
CRect rect; //将兼容DC中的位图拷贝到目的DC中,目的DC的大小
GetClientRect(&rect);
//pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,SRCCOPY);
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,
0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
return true;
//return CView::OnEraseBkgnd(pDC);
}
我还是没搞出来,我昨天思考了下。只能加在资源来.然后显示出来。还是没弄明白应该怎么显示.你给的代码我没跑起来.希望 再帮我看看...174025260 我的QQ.
Snow_Ice11111 2006-05-09
  • 打赏
  • 举报
回复
用CStatic控件就行了。
CStatic* pWnd = (CStatic*)GetDlgItem(IDC_STATIC);
pWnd->ModifyStyle(0, SS_BITMAP);
pWnd->SetBitmap((HBITMAP)::LoadImage(0,
"c:\\zzzzz.bmp", //只能显示.bmp文件
IMAGE_BITMAP,
0,0,LR_CREATEDIBSECTION |LR_DEFAULTSIZE |LR_LOADFROMFILE));
把上面代码放在双击事件响应函数中。
内容概要:本文档围绕基于MATLAB/Simulink平台的直流无刷电机速度控制系统展开,重点介绍利用Simulink搭建电机控制模型,实现直流无刷电机的速度开环控制仿真。文档详细阐述了系统建模、关键模块设计与参数配置过程,帮助读者深入理解电机控制的基本原理与仿真流程。同时,文档还列举了涵盖电力电子、新能源系统、路径规划、智能优化算法等多个领域的丰富仿真案例,充分展示了MATLAB/Simulink在多学科交叉科研仿真的强大功能与广泛应用前景。; 适合人群:具备一定自动控制理论基础和MATLAB/Simulink使用经验的高校学生、科研人员及工程技术人员,特别适用于从事电机控制、电力电子、新能源系统、智能优化等方向的研究者。; 使用场景及目标:①学习直流无刷电机的工作原理及其速度开环控制方法;②掌握使用Simulink进行电机控制系统建模与仿真的核心技能;③为后续开展更高级的闭环控制、矢量控制或结合智能优化算法的电机控制研究奠定坚实的技术基础并提供实用的参考实例。; 阅读建议:建议读者结合文档提供的仿真模型与代码资源,亲自动手实践Simulink建模全过程,逐步理解各功能模块的作用与参数整定方法,并充分利用网盘的配套资料进行复现与深入学习,从而有效提升科研仿真与工程实践能力。
内容概要:本文系统阐述了基于二维离散时间卡尔曼滤波器在二维平面内对运动目标进行轨迹跟踪的技术方案,重点分析了过程噪声与测量噪声在不同强度下对滤波性能的影响。通过建立目标状态空间模型,设计完整的预测与更新算法流程,实现了对受噪声干扰的观测数据进行有效估计与轨迹平滑,充分展现了卡尔曼滤波在动态系统状态估计的鲁棒性与实用性,并提供了完整的Matlab代码实现,便于理论验证与参数调试。; 适合人群:具备信号处理、控制理论或状态估计基础知识的研究生、科研人员,以及从事雷达系统、导航定位、机器人感知、自动驾驶等领域的工程技术人员。; 使用场景及目标:① 掌握卡尔曼滤波的核心原理及其在目标跟踪的建模与实现方法;② 分析不同噪声协方差参数对滤波收敛性、估计精度和平滑效果的影响;③ 为深入研究非线性滤波算法(如EKF、UKF)或多传感器融合技术奠定理论与实践基础。; 阅读建议:建议读者结合所提供的Matlab代码进行仿真实验,通过调整过程噪声和观测噪声的强度,观察滤波轨迹与真实轨迹的偏差变化,深入理解协方差矩阵的演化机制,并尝试将该方法拓展至三维空间或多目标跟踪场景,以增强实际应用能力。

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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