📄 subject_23408.htm
字号:
<p>
序号:23408 发表者:萧马 发表日期:2002-12-03 23:51:16
<br>主题:请问:如何使得文档中的变量赋值后立即得到更新?
<br>内容:thank you thank you !<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:不说 回复日期:2002-12-04 00:53:26
<br>内容:不明白你说的啥意思呵呵……是说在视图里更新么?那还不都是你自己控制地?实在不行……你一开始初始化试图的那段代码再调一遍嘛,比如那个叫什么OnInitialUpdate()的……
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:萧马 回复日期:2002-12-04 01:19:52
<br>内容:花酒?羡慕!!没喝多吧,呵呵。<BR>补充,补充,我是这样的:<BR><BR>在主框架窗口中的一个按钮事件中,将一个字符串值赋予文档中的一个变量,紧接着就有另外一个按钮事件中(主框架窗口)就要用到这个文档变量,怎么样让这个文档变量立即的到更新?<BR>还有一个问题是,在主框架窗口中怎么让分割视图中某个视图重新绘制(我要调用这个视图中的OnCreate()函数)。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:凯凯 回复日期:2002-12-04 10:26:02
<br>内容:还是不明白,你赋值给文档中的变量,它不就已经是“马上”更新了吗?再来取值时就已经是新值了。<BR>第二个问题,可以调用视类的UpdateWindow函数。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:萧马 回复日期:2002-12-04 15:37:03
<br>内容:调用这个函数好象没有反映,调用OnInitialUpdate()函数也没有用,程序如下:<BR><BR> CLTreeView* pView=(CLTreeView*)m_wndSplitter.GetActivePane(0,0);<BR> m_wndSplitter.SetActivePane(0,0);<BR> pView->OnInitialUpdate();//或者pView->UpdateWindow()<BR><BR>都不行,其中CLTreeView为CTreeView类,m_wndSplitter为CSplitterWnd类。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:凯凯 回复日期:2002-12-04 15:46:37
<br>内容:不知道你的具体目的是什么。<BR>OnInitialUpdate()和UpdateWindow()是两回事。<BR><BR>UpdateWindow()是CWnd的成员函数,它强制发送WM_PAINT消息给窗口,一般触发OnPaint或OnDraw函数里的逻辑。<BR>OnInitialUpdate()是CView的成员函数。它由框架在视第一次和文档类绑定时调用,一般触发视的OnUpdate函数。这个函数一般是文档类被改变后用来更新视。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:萧马 回复日期:2002-12-04 16:39:45
<br>内容:不好意思,没说清楚,具体情况如下:<BR><BR>我是在主框架窗口弹出的对话框中添加数据后,点击保存后数据成功的加入表中,我想同时让分割视中左边的CTreeView视图相应的更新(该视图从同一个表中取数据并显示)。<BR><BR>分割视左边为CTreeView,右边为CListView.均为后来才创建的视类。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:萧马 回复日期:2002-12-04 17:34:10
<br>内容:看图:
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:萧马 回复日期:2002-12-04 17:45:11
<br>内容:再看:
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:萧马 回复日期:2002-12-04 20:07:36
<br>内容:咦?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:凯凯 回复日期:2002-12-04 21:13:49
<br>内容:要不你就在修改了数据后发一个自定义的消息给树视,通知它更新数据。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:凯凯 回复日期:2002-12-04 21:15:39
<br>内容:如果你是严格的按DOC/VIEW结构来写程序,相应的视都绑定在文档类上,通过文档类来读写数据库,那你只要调用文档类的updateallview函数就可以更新所有相关的视了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:萧马 回复日期:2002-12-04 21:45:48
<br>内容:我也尝试过用UpdateallView,可是UpdateallView的用法、、、、、?<BR>不知道这样写法是否有误:<BR>CLTreeView* pView=(CLTreeView*)m_wndSplitter.GetPane(0,0);<BR> pDoc->UpdateAllViews(pView,0,NULL);<BR>UpdateAllViews参数设置错误,要么就是我原来的程序有误。<BR><BR>否则它为什么就出不来。伤脑筋。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:凯凯 回复日期:2002-12-05 09:42:37
<br>内容:你更新TreeView内容的代码放在哪里?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:萧马 回复日期:2002-12-05 12:45:38
<br>内容:谢谢凯兄,代码如下:<BR><BR> CRLDoc* pDoc =(CRLDoc*)GetActiveDocument();<BR> m_staffset=&pDoc->m_staffset;<BR> dlg.UpdateData(TRUE);<BR> if(pDoc->m_staffname==dlg.m_staffname)<BR> {<BR> AfxMessageBox("该用户已经存在或保存成功!");<BR> }<BR> else<BR> {<BR> m_staffset->AddNew();<BR> m_staffset->m_ADDRESS=dlg.m_address;<BR> m_staffset->m_AGE=dlg.m_age;<BR> m_staffset->m_BIRTHDAY=dlg.m_birthday;<BR> m_staffset->m_DEGREE=dlg.m_degree;<BR> m_staffset->m_DEPTISO=dlg.m_deptcode;<BR> m_staffset->m_GZSJ=dlg.m_gzsj;<BR> m_staffset->m_HEALTH=dlg.m_health;<BR> m_staffset->m_ID=dlg.m_id;<BR> m_staffset->m_IDENTITY=dlg.m_identity;<BR> m_staffset->m_MARRIAGE=dlg.m_marriage;<BR> m_staffset->m_NAME=dlg.m_staffname;<BR> m_staffset->m_NATION=dlg.m_nation;<BR> m_staffset->m_NATIVE=dlg.m_native;<BR> m_staffset->m_ORIGIN=dlg.m_origin;<BR> m_staffset->m_POLITY=dlg.m_polity;<BR> m_staffset->m_POSTCODE=dlg.m_postcode;<BR> m_staffset->m_RCSJ=dlg.m_rcsj;<BR> m_staffset->m_SEX=dlg.m_sex;<BR> m_staffset->m_SFZ=dlg.m_sfz;<BR> m_staffset->m_STAFFISO=dlg.m_staffiso;<BR> m_staffset->m_STAFFTYPE=dlg.m_stafftype;<BR> m_staffset->m_TEL=dlg.m_tel;<BR> m_staffset->Update();<BR> pDoc->m_staffname=dlg.m_staffname;<BR> //UpdateData(TRUE);<BR> AfxMessageBox("祝贺您,保存成功"); <BR> CLTreeView* pView=(CLTreeView*)m_wndSplitter.GetPane(0,0); <BR> pDoc->UpdateAllViews(pView,0,NULL);<BR> }<BR>这段代码一看就知道是在主框架窗口中,是实现数据保存在表中,我想同时更新分割视左边的树状视图,所有后面添加了:<BR>CLTreeView* pView=(CLTreeView*)m_wndSplitter.GetPane(0,0); <BR> pDoc->UpdateAllViews(pView,0,NULL);<BR>左视图树状视图中数据的显示是在int CLTreeView::OnCreate(LPCREATESTRUCT lpCreateStruct) 中,我想实现的就是保存的同时让树状视图重新从数据库中取数据,也就是重新调用int CLTreeView::OnCreate(LPCREATESTRUCT lpCreateStruct),但是总是无法实现,不知道说得清不清楚?<BR><BR>郁闷。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:凯凯 回复日期:2002-12-05 13:16:17
<br>内容:你应该把更新CLTreeView的代码放在CLTreeView类的OnUpdate函数中(重载它)。<BR>这样当你调用pDoc->UpdateAllViews(NULL,0,NULL);<BR>时,会自己动更新所有和这个文档相关的视。<BR>注意第一个参数设为NULL,因为你是在对话框中修改了文档的内容。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:萧马 回复日期:2002-12-05 13:21:38
<br>内容:let's try,thank you please wait!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:不说 回复日期:2002-12-05 14:00:51
<br>内容:你下次哈,直接贴代码出来得了嘿嘿嘿嘿…………俺发现你的问题always要经历一个提问-》着火-》贴代码-》解答的过程……
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:萧马 回复日期:2002-12-05 15:10:22
<br>内容:知我者不说也。<BR>其实您说得也很对,我将代码放入OnInitialUpdate()中,然后在主框架中调用CLTreeView<BR>*pView->OnInitialUpdate();也行,都是我的错。<BR>谢谢凯,谢谢不说兄。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -