SetWindowText的问题

buleysh 2014-09-03 11:32:15
void CMainFrame::OnTest()
{
// TODO: 在此添加命令处理程序代码
CPropertySheet sheet(_T("测试"),this);
CFirstPage *m_firstPage = new CFirstPage;
CScendPage *m_scendPage = new CScendPage;
sheet.AddPage(m_firstPage);
sheet.AddPage(m_scendPage);

int m_firstOption;
int m_scendOption;
CString temp;

m_firstOption = ::GetPrivateProfileInt(_T("Option"),_T("FirstOption"),0,_T(".\\option.ini"));
m_scendOption = ::GetPrivateProfileInt(_T("Option"),_T("ScendOption"),0,_T(".\\option.ini"));

temp.Format(_T("%d"),m_firstOption);

m_firstPage->m_edit.SetWindowText(temp);

sheet.DoModal();
delete m_firstPage;
delete m_scendPage;
}


程序总是在 m_firstPage->m_edit.SetWindowText(temp); 产生中断,是SetWindowText给的参数不对吗?
那应该怎么将一个整形传给Edit Control显示出来呢?
如何将一个Edit控件设置成灰色,只能显示不能编辑呢?

...全文
633 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
V_wo独尊 2014-09-03
  • 打赏
  • 举报
回复
中断在第四行? 至于只读的那个,MFC的话,直接修改Edit的属性,吧ReadOnly选上就可以了吧
buleysh 2014-09-03
  • 打赏
  • 举报
回复
将m_firstPage->m_edit.SetWindowText(temp); 换成SetDlgItemText(m_firstPage->IDC_EDIT,temp); 编译提示:错误 3 error C2039: “sheet”: 不是“CFirstPage”的成员 这又是什么状况啊???关sheet什么事。。。。
buleysh 2014-09-03
  • 打赏
  • 举报
回复
就是这么做的啊,可现在
void CWnd::SetWindowText(LPCTSTR lpszString)
{
	ENSURE(this);
	ENSURE(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL));

	if (m_pCtrlSite == NULL)
		::SetWindowText(m_hWnd, lpszString);
	else
		m_pCtrlSite->SetWindowText(lpszString);
}
这里出现了中断,是什么原因呢
SiGoYi 2014-09-03
  • 打赏
  • 举报
回复
看着没错啊! 显示int还不容易,定义一个CString str; str.Format(_T("%d"), 你的int变量);
V_wo独尊 2014-09-03
  • 打赏
  • 举报
回复
引用 14 楼 majianwei0705 的回复:
[quote=引用 13 楼 buleysh 的回复:] [quote=引用 12 楼 majianwei0705 的回复:] 你的 m_firstPage 有没有Create出来,new出来的只是一个对象,如果没有Create的话,句柄等资源还没有分配,使用的话会出错。ASSERT(::IsWindow(m_hWnd)); 就是断言这个控件已经初始化完毕,已经是一个窗口对象,句柄可用了。
对于这点不是很清楚,具体应该如何Create呢?sheet.DoModal();能执行这一句不是说明已经实例了吗?[/quote] 额,模态对话框啊,你重载一些OnInitDialog,把这些初始化工作放到那里面去做吧[/quote] 在Sheet的OnInitDialog中,调用完其子类的OnInitDialog,Sheet及其子控件就可以使用了
V_wo独尊 2014-09-03
  • 打赏
  • 举报
回复
引用 13 楼 buleysh 的回复:
[quote=引用 12 楼 majianwei0705 的回复:] 你的 m_firstPage 有没有Create出来,new出来的只是一个对象,如果没有Create的话,句柄等资源还没有分配,使用的话会出错。ASSERT(::IsWindow(m_hWnd)); 就是断言这个控件已经初始化完毕,已经是一个窗口对象,句柄可用了。
对于这点不是很清楚,具体应该如何Create呢?sheet.DoModal();能执行这一句不是说明已经实例了吗?[/quote] 额,模态对话框啊,你重载一些OnInitDialog,把这些初始化工作放到那里面去做吧
buleysh 2014-09-03
  • 打赏
  • 举报
回复
引用 12 楼 majianwei0705 的回复:
你的 m_firstPage 有没有Create出来,new出来的只是一个对象,如果没有Create的话,句柄等资源还没有分配,使用的话会出错。ASSERT(::IsWindow(m_hWnd)); 就是断言这个控件已经初始化完毕,已经是一个窗口对象,句柄可用了。
对于这点不是很清楚,具体应该如何Create呢?sheet.DoModal();能执行这一句不是说明已经实例了吗?
V_wo独尊 2014-09-03
  • 打赏
  • 举报
回复
你的 m_firstPage 有没有Create出来,new出来的只是一个对象,如果没有Create的话,句柄等资源还没有分配,使用的话会出错。ASSERT(::IsWindow(m_hWnd)); 就是断言这个控件已经初始化完毕,已经是一个窗口对象,句柄可用了。
buleysh 2014-09-03
  • 打赏
  • 举报
回复
为什么都只能通过Value类型来改变控件状态,用Control类型就会崩溃呢?
buleysh 2014-09-03
  • 打赏
  • 举报
回复
m_firstPage->m_option1.SetCheck(1); 中断位置,{ ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, BM_SETCHECK, nCheck, 0); } 这说明了什么呢?::IsWindow(m_hWnd) ,这个是什么意思?是出问题的地方?
buleysh 2014-09-03
  • 打赏
  • 举报
回复
引用 8 楼 majianwei0705 的回复:
通过CEdit变量肯定可以更新信息啊,而且不需要UpdateData这样。 是不是CEdit控件未创建完成? 如果 ENSURE(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL)); 这儿崩溃的话应该就是了,否则的话,就有点奇怪了
CFirstPage *m_firstPage = new CFirstPage; new 的时候不是CFirstPage的变量都已经创建了吗?刚才又再改m_firstPage上的另一个空间, m_firstPage->m_option1.SetCheck(1); 同样的错误,所以我猜想是不是因为在创建m_firstPage的时候各种控件的状态已经定下了,没办法更改?或者需要重绘?刚学mfc好多概念还不清晰
V_wo独尊 2014-09-03
  • 打赏
  • 举报
回复
通过CEdit变量肯定可以更新信息啊,而且不需要UpdateData这样。 是不是CEdit控件未创建完成? 如果 ENSURE(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL)); 这儿崩溃的话应该就是了,否则的话,就有点奇怪了
buleysh 2014-09-03
  • 打赏
  • 举报
回复
重新定义了一个文本变量, m_firstPage->m_editText.Format(_T("%d"),m_firstOption); UpdateData(FALSE); 为什么这样就可以,通过CEdit变量就不能更新信息呢???
buleysh 2014-09-03
  • 打赏
  • 举报
回复
忽略debug信息后提示遇到不适当的参数
buleysh 2014-09-03
  • 打赏
  • 举报
回复
中断在第二行,我已经恨上mfc了
内容概要:本文围绕“【SCUC】N-1故障集+安全约束机组组合研究(Matlab代码实现)”展开,系统探讨电力系统在N-1故障场景下的安全约束机组组合(SCUC)问题,旨在实现系统安全性与运行经济性的协同优化。研究通过构建包含机组启停、出力计划、潮流约束、备用容量及N-1安全准则的数学模型,结合混合整数线性规划等优化算法,利用Matlab平台完成仿真求解,并引入YALMIP等建模工具提升建模效率。文档提供了完整的代码实现方案与测试案例,涵盖故障集的生成与处理方法,帮助用户掌握鲁棒性和分布鲁棒优化的基本思想,适用于电力系统安全校核与调度决策支持。; 适合人群:电力系统及相关专业的研究生、从事电力调度、能源优化的科研人员及工程技术人员。; 使用场景及目标:① 掌握N-1安全准则在机组组合中的建模方法与实现流程;② 开展安全约束机组组合(SCUC)与安全约束经济调度(SCED)的仿真分析;③ 利用Matlab/YALMIP快速搭建电力系统优化模型并进行求解与验证。; 阅读建议:建议读者结合文档内容与网盘提供的完整资源(含代码与数据),动手实践建模与调试过程,重点关注约束条件的设定、故障场景的枚举与处理策略,同时参考相关文献深化对鲁棒优化与分布鲁棒方法的理解。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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