| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 980 人关注过本帖
标题:对话框使用问题
只看楼主 加入收藏
umbrellandy
Rank: 1
等 级:新手上路
帖 子:133
专家分:0
注 册:2006-7-21
收藏
得分:0 
或者也可以这样:
1,建好对话框类CmyDialog
2,在菜单栏里添加新菜单假设ID为:ID_MENUITEM_MyDialog
3,打开classwizard,在CView类下给ID_MENUITEM_MyDialog添加消息COMMAND生成相应的函数,在函数内添加如下代码:
CMyDialog dlg;
dlg.DoModal();
4,在CMyView.cpp开始添加:#include "MyDialog.h"

生活充满阳光,快乐无处不在
2006-10-01 21:13
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 
对话框弹是终于弹出来了,但是不是想要的结果...

图片附件: 游客没有浏览图片的权限,请 登录注册


图片附件: 游客没有浏览图片的权限,请 登录注册


到第二个图片,输入完坐标后点击确定,结果线是在对话框上画出来了,并且对话框没有消失

不知道画线函数些好之后应该放在哪个类里面一般是Cview ? 因为先头调用不成功所以我把函数定义在对话框的类里了

应该定义在哪里呢 因为要从对话框中导入变量给画线函数

给想想办法....

unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-10-01 22:25
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
可以这样写。
假设你的view类名是:CMyView
假设你的对话框是在CMainFrame的响应函数中产生的。

void CMainFrame::OnDialog()
{
CMyDlg mDlg;
if(IDOK==mDlg.DoModal())
{
CMyView* pView=(CMyView*)GetActiveView();
pView->MoveTo(point1);//两个坐标点
pView->LineTo(point2);
}
}





或者你也可以这样:
把你的4个EDIT控件都在对话框资源里反键,点classWizard-》变量选项卡(关联)。
int x1,x2,y1,y2;//都是CMyDlg的成员。
构造函数时都初始化为0;

上面的函数写为:
//这是响应某个动作产生对话框的函数
void CMainFrame::OnDialog()
{
CMyDlg mDlg;
mDlg.DoModal();
}
然后在你的对话框资源
中的"确定"双击就可以了,添加事件响应。编辑代码。
void CMyDlg::OnOK()
{
CDialog::OnOK();
CMainFrame* pFrm=(CMainFrame*)AfxGetMainWnd();
CMyView* pView=(CMyView*)pFrm->GetActiveView();
pView.MoveTo(CPoint(x1,y1));
pView.LineTo(CPoint(x2,y2));
}
这样就不用去想办法获取数据了。

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-10-01 22:48
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
不过如果不用某种变量来保存这些数据的话,OnDraw就无法画出任何东西了

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-10-01 22:50
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 
CDC::ScaleViewportExt() 这个函数用过嘛

MSDN原型
virtual CSize ScaleViewportExt(
int xNum,
int xDenom,
int yNum,
int yDenom
);



在自己定义的函数中如何调用他呢呢?
比如我画了个矩形,想对其进行缩放

CDC*pDC=GetDC();
pDC->Rectangle(CRect(0,0,200,200));
CDC::ScaleViewportExt (//这里如何定义呢);


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-10-05 14:22
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

Return Value

The previous viewport extents (in device units) as a CSize object.

Parameters

xNum

Specifies the amount by which to multiply the current x-extent.

xDenom

Specifies the amount by which to divide the result of multiplying the current x-extent by the value of the xNum parameter.

yNum

Specifies the amount by which to multiply the current y-extent.

yDenom

Specifies the amount by which to divide the result of multiplying the current y-extent by the value of the yNum parameter.

Remarks

Modifies the viewport extents relative to the current values. The formulas are written as follows:

xNewVE = ( xOldVE * xNum ) / xDenom
yNewVE = ( yOldVE * yNum ) / yDenom

The new viewport extents are calculated by multiplying the current extents by the given numerator and then dividing by the given denominator.


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-10-06 10:00
luoxian_2003
Rank: 1
等 级:新手上路
威 望:2
帖 子:163
专家分:0
注 册:2006-2-22
收藏
得分:0 
建议你仔细的把书看一遍,不要急于求成,凡事都有个过程

天地有正气,凛烈万古存。
2006-10-08 17:44
快速回复:对话框使用问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019816 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved