社区
界面
帖子详情
无文档关联的FormView窗口中的控件初始化的问题
z9851214
2004-04-09 10:08:59
我在一个SDI文档中分割了视图,左右两个,左边为CSrollView与文档关联,右边为FormView与文档无关,在FormView中设置了slider控件来操作左边的文档数据。当时我不知道如何初始化slider控件。在CFormView::OnInitialUpdate()中设置 m_slider.SetRange和SetPos好像不起作用。小虾是初学者,请各位大虾多多指教!!!
m_slider为控件名
...全文
171
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的第二个参数,如何加呢?
MFC原创:三层架构02(人事管理系统)UI-01
VC++/MFC Window编程原创教程目录 (11-08)做完了DAL层,就考虑了要先做BLL层还是UI层的
问题
,最后还是选择了先做UI层。感觉BLL层是为UI服务的,UI需要什么功能,就由BLL来实现。首先是用笔在纸上画下布局,修修改改感觉可以就开始动手吧。用三层架构的好处,就算把整个界面设计否决了,重新设计相应重新调用BLL层就可以。 做界面也是挺麻烦的事,每个
窗口
、
MFC TabCtrl创建方法
一:首先vs2008建立一个MFC的工程,选择
窗口
为对话框。 二:在对话框上放置一个TabCtrl
控件
,并
关联
变量m_pTabCtrl 三:给工程添加两个页资源,ID号分别为IDD_
FORM
VIEW
1,IDD_
FORM
VIEW
2,可以自己手动在此添加需要的
控件
,然后右击选择添加类,继承与CDialog类,类名分别为CTabPage1,CTabPage2. 四:给对话框类分别添加CTabPag
关于C
Form
View
不调用OnInitialUpdate的
问题
http://biancheng.dnbcw.info/c/389317.html 首先是用MFC的向导建立的一个SDI的框架,然后再动态创建两个C
Form
View
,分别是“扫描设置”和“报告预览”。这两个
View
是没有对应的
文档
的,这两个C
form
View
里面有很多
控件
,需要对其进行一些
初始化
设置。本来是想在OnInitialUpdate函数里面进行设置的,但是在程序运行时发现根本没有调用On
MFC深入解析:C
Form
View
类的详细用法与代码实战
本文详细介绍了MFC
中
C
Form
View
类的核心特性和使用方法。C
Form
View
结合了视图和对话框的优点,支持对话框
控件
嵌入、滚动视图和数据交换(DDX/DDV)。主要内容包括:1) C
Form
View
的创建步骤和核心特性;2) 视图
初始化
与
控件
管理;3) 消息处理与事件响应机制;4) 与
文档
类的交互方式;5) 高级功能实现如动态
控件
创建和布局管理;6) 最佳实践包括内存管理、数据验证和调试技巧。文章通过大量代码示例展示了如何构建基于C
Form
View
的窗体应用程序,并强调了与
文档
/视图架构的无缝集成。最
【高速串行通信】基于S参数去嵌与信道劣化建模的PCIe链路表征:物理层测试
中
发射机与接收机性能验证方法研究
内容概要:本文围绕PCI Express通道在信道退化情况下的表征方法展开,重点介绍了物理层测试
中
的关键技术与流程。文章详细阐述了如何通过S参数提取和去嵌入(de-embedding)技术,将测量结果还原至发送端或接收端引脚,以准确评估信号完整性;同时探讨了合规性通道的嵌入、接收端均衡(如CTLE/DFE)对闭合眼图的恢复效果,以及如何生成带有预加重、去加重、抖动损伤和信道仿真的接收端测试信号。此外,还分析了短通道实例的测试结果,并强调高质量PCB设计和S参数数据对去嵌入精度的重要性。; 适合人群:从事高速接口设计、信号完整性分析或PCIe相关芯片开发的工程师,具备一定电磁场理论和高速数字电路基础的研发人员; 使用场景及目标:①用于精确表征PCIe链路在真实信道退化条件下的性能表现;②支持接收端容限测试与合规性验证,提升系统鲁棒性; 阅读建议:本资料适用于需要深入理解PCIe物理层测试机制的技术人员,建议结合实际测试工具(如示波器、通道仿真软件)进行实践操作,重点关注S参数获取、去嵌入设置及均衡后信号分析等关键步骤。
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章