社区
界面
帖子详情
无文档关联的FormView窗口中的控件初始化的问题
z9851214
2004-04-09 10:08:59
我在一个SDI文档中分割了视图,左右两个,左边为CSrollView与文档关联,右边为FormView与文档无关,在FormView中设置了slider控件来操作左边的文档数据。当时我不知道如何初始化slider控件。在CFormView::OnInitialUpdate()中设置 m_slider.SetRange和SetPos好像不起作用。小虾是初学者,请各位大虾多多指教!!!
m_slider为控件名
...全文
158
12
打赏
收藏
无文档关联的FormView窗口中的控件初始化的问题
我在一个SDI文档中分割了视图,左右两个,左边为CSrollView与文档关联,右边为FormView与文档无关,在FormView中设置了slider控件来操作左边的文档数据。当时我不知道如何初始化slider控件。在CFormView::OnInitialUpdate()中设置 m_slider.SetRange和SetPos好像不起作用。小虾是初学者,请各位大虾多多指教!!! m_slider为控件名
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
z9851214
2004-04-10
打赏
举报
回复
非常感谢kongyunzhongque(云雀) 大侠,我的问题解决了
也非常感谢GSK168(锐)给我提供了源代码
kongyunzhongque
2004-04-09
打赏
举报
回复
void CMyFormView::OnInitialUpdate()
{
CSliderCtrl *psc=(CSliderCtrl*)GetDlgItem(IDC_SLIDER1);
psc->SetRange(0,100);
psc->SetTicFreq(10);
psc->SetPos(20);
CFormView::OnInitialUpdate();
}
//CSliderCtrl的Orientation为Verticl
void CMyFormView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
CSliderCtrl *psc=(CSliderCtrl*)GetDlgItem(IDC_SLIDER1);
int iPos =psc->GetPos();
CString str;
str.Format("%d",iPos);
SetDlgItemText(IDC_EDIT1,str);
CFormView::OnVScroll(nSBCode, nPos, pScrollBar);
}
z9851214
2004-04-09
打赏
举报
回复
谢谢,我试了,但还是不行,调试的时候,发现m_slider 指向为空
kongyunzhongque
2004-04-09
打赏
举报
回复
OnCreate()试试!
kongyunzhongque
2004-04-09
打赏
举报
回复
m_wndSplitter.DeleteView(0, 0);
应替换为m_wndSplitter.DeleteView(0, 1);
kongyunzhongque
2004-04-09
打赏
举报
回复
说这么半天,用自己手动调用OnInitialUpdate();
void CMainFrame::OnViewSwitch()
{
CSize paneSize1(0, 0);
CCreateContext Context;
Context.m_pNewViewClass=RUNTIME_CLASS(CMyFormView);
Context.m_pCurrentDoc=GetActiveDocument();
Context.m_pCurrentFrame=this;
Context.m_pNewDocTemplate=NULL;
Context.m_pLastView=(CView*)m_wndSplitter.GetPane(0,0);
m_wndSplitter.DeleteView(0, 0);
m_wndSplitter.CreateView(0, 1,RUNTIME_CLASS(CMyFormView),paneSize1, &Context);
CView *pView=(CView*)m_wndSplitter.GetPane(0,1);
pView->GetParentFrame()->RecalcLayout();
m_wndSplitter.RecalcLayout();
pView->OnInitialUpdate();
m_wndSplitter.SetActivePane(0,1);
}
GSK168
2004-04-09
打赏
举报
回复
我有一个和你的情况相似的代码,你想参考一下吗,
说这么多,有时也是白费,QQ:108158579
z9851214
2004-04-09
打赏
举报
回复
谢谢各位,我的右边视图是可以切换的,可以切换几个FormView,其代码为:
CMyFormView1* pView=(CMyFormView1*)MainFrame1->m_wndSplitter.GetPane(0,1);
ASSERT(pView != NULL);
CDocument* pDoc = pView->GetDocument();
//删除掉当前的视图(即右视图)
MainFrame1->m_wndSplitter.DeleteView(0, 1);
//添加新的视图
CCreateContext ctxt;
ctxt.m_pCurrentDoc = pDoc;
VERIFY(MainFrame1->m_wndSplitter.CreateView(0, 1,
RUNTIME_CLASS(CMyFormView2), CSize(100, 100), &ctxt));
MainFrame1->m_wndSplitter.RecalcLayout();
程序开始时候,在MyFormView1上的SLIDER的位置是可以用kongyunzhongque(云雀)的方法设置的
但切换到MyFormView2后控件无法初始化,不知何故
kongyunzhongque(云雀)大虾,你知道原因吗?
YunLion
2004-04-09
打赏
举报
回复
在CMyApp::InitInstance()返回前调用你的初始化函数。
kongyunzhongque
2004-04-09
打赏
举报
回复
不知你的分割栏是在哪里设定的?
CMyFormView跟文档还是有关联的,通过CCreateContext* pContext
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
VERIFY(m_wndSplitter.CreateStatic(this,1,2));
m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CSdittView),CSize(200,0),pContext);
m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CMyFormView),CSize(0,0),pContext);
return TRUE;
}
itmaster
2004-04-09
打赏
举报
回复
觉得kongyunzhongque(云雀)的方法是对的
思考ing
z9851214
2004-04-09
打赏
举报
回复
再次感谢,但我加了以上代码以后 程序没有反应,我设置断点调试
void CMyFormView::OnInitialUpdate()
{
/*在此处设断点*/CSliderCtrl *psc=(CSliderCtrl*)GetDlgItem(IDC_SLIDER1);
psc->SetRange(0,100);
psc->SetTicFreq(10);
psc->SetPos(20);
CFormView::OnInitialUpdate();
}
发现程序并没有在断点处运行,会不会是CMyFormView没有跟文档联系,OnInitialUpdate消息没有执行???我将上述代码加入int CMyFormView::OnCreate(LPCREATESTRUCT lpCreateStruct)中发现psc指向空,会不会是要指名GetDlgItem的第二个参数,如何加呢?
UG 2023 64bit 64 位系统设计软件.rar
UG NX 2023(Unigraphics NX,
中
文名交互式 CAD/CAM 系统),是西门子 Siemens PLM Software 研发的 CAD/CAE/CAM 一体化产品工程解决方案,提供全套数字化造型与仿真验证手段。软件功能强悍,可轻松完成各类复杂实体、曲面造型构建,广泛应用于机械装备、塑胶模具、汽车零部件、航空航天、数控加工、钣金设计等工业领域。 软件仅支持 Win10、Win11 64 位系统,不再兼容 Win7,硬件配置要求适
中
。软件集三维建模、工程制图、数控编程、力学与运动仿真等功能于一体,可兼容各类主流设计文件格式。 该版本优化了装配加载速度、曲面建模能力与刀路算法,运行稳定,是当下行业主流版本。 由于安装包文件过大,CSDN 无法直接上传,附件提供下载链接及配套安装教程,欢迎下载使用。
vivado XADC IP核使用教程
vivado XADC IP核使用教程
64 位 NX2023 UG 主流行业版本 无偿持续分享.rar
UG(Unigraphics NX)是一款由西门子(Siemens PLM Software)开发的交互式CAD/CAM/CAE系统。作为全球领先的产品工程解决方案,它集成了产品设计、工程仿真与制造加工于一体。其功能强大且应用广泛,能够轻松实现各种复杂实体和造型的构造,为模具、汽车、航空航天及通用机械等行业提供了高性能的机械设计与制图灵活性。
【变压器的开路试验】变压器进行开路试验时的电路连接配置(Simulink仿真实现)
内容概要:本文详细介绍了利用Simulink进行变压器开路试验的电路连接配置与仿真实现方法,重点在于通过仿真手段还原实际电力系统
中
变压器在空载条件下的电气特性,从而深入理解其工作原理与性能表现。文章作为电力系统仿真系列研究的一部分,系统阐述了从电路模型搭建、参数设定、仿真运行到结果分析的完整流程,突出展示了MATLAB/Simulink在电力设备建模与教学科研
中
的强大功能与应用价值。; 适合人群:具备电力系统基础知识,熟悉MATLAB/Simulink仿真环境,从事电气工程、自动化及相关领域的研发人员,以及高年级本科生和研究生。; 使用场景及目标:①掌握变压器开路试验的基本原理与Simulink仿真建模的具体步骤;②通过仿真实验深入理解空载电流、铁芯损耗及励磁特性等关键参数的物理意义;③为后续开展变压器短路试验、暂态过程分析以及其他电力设备的仿真研究奠定理论与实践基础。; 阅读建议:建议结合Simulink软件动手实践,逐步构建并调试电路模型,重点关注各元件参数的设置方法与测量模块的应用技巧,同时推荐参考文
中
提及的其他相关仿真案例进行拓展学习,以全面提升对电力系统仿真实践的整体认知与操作能力。
SoloBlog.zip
SoloBlog.zip
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章