📄 subject_23913.htm
字号:
<p>
序号:23913 发表者:lwx 发表日期:2002-12-07 17:12:33
<br>主题:菜鸟问题
<br>内容:我作了一个单文档程序.里面又添加了一个对话框类,现在我的要求是通过点击对话框的OK按钮将一组用户输入到对话框里的字符信息发到文档窗口内,我的代码如下, <BR>但是没有任何效果 <BR>void mydlg::OnOK() <BR>{ <BR>UpdateData(TRUE); <BR> char chr[1]; <BR>itoa(m_edit,chr,10); <BR>CDC*pDC=GetDC(); <BR> pDC->SetTextAlign(TA_CENTER|TA_BASELINE); <BR>pDC->TextOut(10,10,chr); <BR>CDialog::OnOK(); <BR>} <BR>我知道如果在视图类内如果像下面这样定义就可以显示对话框里的数据 <BR>void CLx1View::OnDraw(CDC* pDC) <BR>{ <BR><BR>CLx1Doc* pDoc = GetDocument(); <BR>ASSERT_VALID(pDoc); <BR>char ch[1]; <BR>itoa(dlg.m_edit,ch,10); <BR>pDC->TextOut(10,10,ch); <BR>// TODO: add draw code for native data here <BR>} <BR>但是现在的问题我对话框里的数据更新后这样又显示不了, <BR>我有个想法,如果能在对话框的ONOK()函数里调用该OnDraw()就好了,但是这里面涉及到一个CDC*pDC.指针,他大概是一个指向我的客户区指针吧,我不知道这是怎么来的,请高手指点 <BR><BR><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-07 17:26:16
<br>内容:void mydlg::OnOK() <BR>{ <BR>UpdateData(TRUE); <BR> char chr[1]; <BR>itoa(m_edit,chr,10); <BR>CDC*pDC=GetDC();//得到的是改对话框的DC <BR> pDC->SetTextAlign(TA_CENTER|TA_BASELINE); <BR>pDC->TextOut(10,10,chr);//画在对话框里了 <BR>CDialog::OnOK();//对话框被关闭了,当然 看不到冬冬了<BR>} <BR><BR>DC应该是view的DC,可以通过参数传给对话框
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lwx 回复日期:2002-12-07 17:56:25
<br>内容:楼上的回答,使我明白了好些,但是最终究竟如何获取VIEW的DC那,你没有告诉我,其实我也知道我这里用GetDC()来获取有问题,但是我实在想不到什么好办法,另外是不是可以通过发消息给VIEW来调用Ondraw()
<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-07 18:01:19
<br>内容:你说这VC怎么就没有VB里的INPUTBOX()呢,<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-07 22:33:25
<br>内容:在CView重用CClientDC dc(this);得到dc,然后作为参数传给兑换矿
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lwx 回复日期:2002-12-08 09:08:58
<br>内容:十分感谢楼上的朋友,我终于弄成了,用了两种方法,其中一种我觉得难些,就是在我的对话框类里面得到我的视图类的CDC指针那种,你的代码给了我很大的启示,以前我以为要用什么函数来获取,现在看来不必了,我的过程是先在对话框类里面定义了一个成员函数和成员变量<BR>void mydlg1(CDC*dc);<BR>CDC*pDC;<BR>然后在我的视图类里面调用这函数来代人CDC指针,一切合情合理,十分感谢你了,谢谢了:)
<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 + -