MAKEINTRESOURCE() 与 CString 的转换问题,谢谢回答

happyhhb 2007-05-01 06:45:18
首先祝各位兄弟51快乐,呵呵

一个在picture上显示位图的程序中,我用了如下代码:

HBITMAP hBitmap;
CStatic *pStatic = (CStatic *)GetDlgItem(IDC_Picture_Unit);
hBitmap = (HBITMAP)LoadImage(
AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDB_BITMAP_DXJSDQ), //数字形ID转为"字符串"
IMAGE_BITMAP,
0,
0,
LR_DEFAULTSIZE);
pStatic->ModifyStyle(0xF, SS_BITMAP|SS_CENTERIMAGE);
pStatic->SetBitmap(hBitmap);

当我在MAKEINTRESOURCE()中使用固定的位图资源id的时候,显示是正常的
但当我把这一id换成CString变量的时候,编译一样通过,但就是不能显示位图
我想根据程序的运行情况来决定显示哪个位图资源
我用过的方法:
CString mPicture = "IDB_BITMAP_DXJSDQ";
MAKEINTRESOURCE(((LPCTSTR)mPicture)) 结果是编译通过但无法显示

如果我要换成显示的位图是一个外部文件呢?我用的方法是:
(HBITMAP)LoadImage( NULL,
"c:\\2.bmp",
IMAGE_BITMAP,
0,
0, LR_DEFAULTSIZE);
pStatic->ModifyStyle(0xF, SS_BITMAP);
pStatic->SetBitmap(hBitmap);

结果也是编译通过但无法显示
我该怎么办呢?谢谢回答
...全文
630 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
happyhhb 2007-05-01
  • 打赏
  • 举报
回复
谢谢,songyuanwc()

但我现在就是这样做的,呵呵,够懒得了,哈哈
songyuanwc 2007-05-01
  • 打赏
  • 举报
回复
呵呵,比较阴险的一招是做个和背景色一样的图标,到时候。。。
happyhhb 2007-05-01
  • 打赏
  • 举报
回复
还有一个问题是,如何隐藏显示呢,当满足一定条件的时候,就是不显示位图了,换成背景色

谢谢
happyhhb 2007-05-01
  • 打赏
  • 举报
回复
Mackz(在相互),你答过我n个帖子了耶,呵呵,谢谢

不知道应该如何把字符串转化成整数id呢,用GetDlgItem()吗
命名id倒是挺新鲜的,我试试看
菜牛 2007-05-01
  • 打赏
  • 举报
回复
先转换为ID,也就是整数。或者,你的资源就用“命名”ID,也就是用引号括起来,而不是整数ID。
happyhhb 2007-05-01
  • 打赏
  • 举报
回复
谢谢songyuanwc() ^_^

那我该怎么让它“变量化”呢?
我想从一个txt文件中读取图片资源的id,作为显示位图的变量
当然读进来的时候就是一个CString类型了,但该类型是不能直接作第二个参数的
what can i du ?
songyuanwc 2007-05-01
  • 打赏
  • 举报
回复
HANDLE LoadImage(
HINSTANCE hinst, // handle to instance
LPCTSTR lpszName, // image to load
UINT uType, // image type
int cxDesired, // desired width
int cyDesired, // desired height
UINT fuLoad // load options
);
第二个参数如果是ID的话用 MAKEINTRESOURCE是 OK的,不然的话应该直接放入图像的名字
If the image resource is to be loaded by name, the lpszName parameter is a pointer to a null-terminated string that contains the name of the image resource. If the image resource is to be loaded by ordinal, use the MAKEINTRESOURCE macro to convert the image ordinal into a form that can be passed to the LoadImage function
MSDN注释
happyhhb 2007-05-01
  • 打赏
  • 举报
回复
谢谢了,呵呵,结贴了我会给分的
关于第二个问题,刚才找出原因了,要显示外部文件必须加参数LR_LOADFROMFILE

但第一个问题还是无法解决,请高手支招,谢谢
Super.Jiju 2007-05-01
  • 打赏
  • 举报
回复
不晓得
帮顶拿分!
内容概要:本文围绕基于电压-电流双闭环控制的断续导通模式(DCM)反激式开关电源展开系统性仿真研究,整合仿真模型、理论文献与Mathcad计算书三大资源,深入阐述该电源系统的设计原理与实现方法。研究重点在于构建电压外环与电流内环的双闭环控制策略,以提升电源的动态响应速度、输出电压稳定性和负载调整率。通过Matlab/Simulink等工具建立精确仿真模型,验证DCM模式下反激变换器的能量传递特性、开关器件应力分布及反馈控制环路的稳定性表现。同时,借助Mathcad完成关键电路参数的数学建模与设计计算,确保理论分析与仿真结果的高度一致性,实现从理论推导到工程实践的闭环验证。; 适合人群:具备电力电子技术基础,从事开关电源设计、电力变换器开发或自动化控制等相关领域研究的研发工程师及高校研究生。; 使用场景及目标:①掌握反激式开关电源在DCM模式下的工作机理与系统建模方法;②学习电压-电流双闭环控制器的设计流程、稳定性分析与参数整定技术;③实现理论计算、数学推导与仿真实践的深度融合,支撑科研项目复现或实际工程原型开发。; 阅读建议:建议读者结合所提供的仿真文件、技术文献与Mathcad计算文档同步学习,注重理论公式推导与仿真波形结果的对照分析,动手调整控制器参数以深入理解系统动态响应特性与稳定性边界。

19,464

社区成员

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

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