社区
界面
帖子详情
无文档关联的FormView窗口中的控件初始化的问题
z9851214
2004-04-09 10:08:59
我在一个SDI文档中分割了视图,左右两个,左边为CSrollView与文档关联,右边为FormView与文档无关,在FormView中设置了slider控件来操作左边的文档数据。当时我不知道如何初始化slider控件。在CFormView::OnInitialUpdate()中设置 m_slider.SetRange和SetPos好像不起作用。小虾是初学者,请各位大虾多多指教!!!
m_slider为控件名
...全文
120
12
打赏
收藏
无文档关联的FormView窗口中的控件初始化的问题
我在一个SDI文档中分割了视图,左右两个,左边为CSrollView与文档关联,右边为FormView与文档无关,在FormView中设置了slider控件来操作左边的文档数据。当时我不知道如何初始化slider控件。在CFormView::OnInitialUpdate()中设置 m_slider.SetRange和SetPos好像不起作用。小虾是初学者,请各位大虾多多指教!!! m_slider为控件名
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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的第二个参数,如何加呢?
VC++基于单
文档
切割成多视图
要创建一个CList
View
视图,首先需要继承CList
View
类,然后在OnCreate()函数
中
初始化
CListCtrl对象,并设置其列和样式。列表视图可以用于显示结构化的数据,如表格形式的项目列表。 2. 创建C
Form
View
视图:C
Form
View
...
Tab
控件
的使用
5. **
初始化
页面布局**:在
View
类的
初始化
函数`OnInitialUpdate()`
中
,完成TabControl与对话框的
关联
工作。具体包括: - 使用`InsertItem()`方法向TabControl
中
添加两个页面。 - 调用对话框的`Create()`方法创建...
单
文档
按钮的多视图切换
4. **
初始化
和管理视图**:在主
窗口
的
初始化
过程
中
,创建所有需要的视图对象,并将它们添加到
文档
对象
中
。通常,视图会作为
文档
的一部分进行管理,因为它们共享同一个数据源。 5. **数据同步**:如果视图需要显示...
基于C
Form
View
的图形打印程序
在`Print.cpp`和`Print
View
.cpp`
中
,我们可以找到与打印相关的函数实现,比如`OnFilePrint`或`OnPrint`,这些函数会调用`DoPreparePrinting`来
初始化
打印信息,并启动打印作业。 `Print
View
.cpp`
中
的`OnDraw`函数是...
ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1
2.2.2
文档
窗口
2.2.3 工具箱 2.2.4 错误列表和任务列表 2.2.5 服务器资源管理器 2.3 代码编辑器 2.3.1 添加程序集引用 2.3.2 智能感知和大纲显示 2.3.3 Visual Studio 2010改进 2.4 编码模型 ...
界面
15,980
社区成员
115,867
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章