MFC基于对话框的编程中有两个对话框dlg1和dlg2,通过dlg1上的一个button来打开dlg2。
1个回答
展开全部
你把dlg2设计成一个类,然后通过dlg1的按钮来实现初始化dlg2,基本操作如下:
(我之前做的,部分截取的代码,)
CLoginDlg loginDlg;//实例化一个类;
loginDlg.acceptType(LoginType);//我设计的类可以接受一个参数,然后再决定初始化界面效果,所以要是没有什么参数需要传递的话,可以不用这句。
loginDlg.DoModal();//差不多就是交给系统去显示。
至于范围的话,需要先记录onMouseClick的point,然后通过onMouseMove的即时坐标点来判断框是否出界;出界后强制赋值就好了。。。
(我之前做的,部分截取的代码,)
CLoginDlg loginDlg;//实例化一个类;
loginDlg.acceptType(LoginType);//我设计的类可以接受一个参数,然后再决定初始化界面效果,所以要是没有什么参数需要传递的话,可以不用这句。
loginDlg.DoModal();//差不多就是交给系统去显示。
至于范围的话,需要先记录onMouseClick的point,然后通过onMouseMove的即时坐标点来判断框是否出界;出界后强制赋值就好了。。。
更多追问追答
追问
我现在已经知道怎么通过dlg1的button打开dlg2,能具体讲讲dlg2的移动范围的设定吗?谢谢!!
追答
onMouseClick和onMouseMove是mfc提供的函数,自带两个参数,一般只要用point这个参数就好了。。。点下鼠标左键的话就会记录坐标值,你最好用个成员变量记住这个值,因为后面的计算要用,当然,最好用onLeftButtonDown,记录鼠标左键按下的屏幕坐标位置,通过onMouseMove的即时响应,可以一边拖动一遍计算移动的距离的。当然,point本身就是一个结构,拆开来分成point.x和point.y分别计算比较好;通过这个可以计算出鼠标拖动的距离。(到这里还是很容易理解的吧!)
之后就是dlg2创建之后,MapDialogRect(HWND hDlg,LPRECT IpRect)能返回指定对话框位置,lpRect也是个结构,有left/right/top/buttom,对应左右上下的屏幕坐标。。。然后计算就是了。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询