MFC 如何在一个窗体中嵌套在另一个窗体中

其中的一个方法是讲子窗体设置为非模式对话框,具体操作为 :设置子窗体的border属性为none,style为 child。
在父窗体中需要用create来实现,具体例子如下。

在父窗体的OnInitDialog()函数中添加如下代码:

CPage *m_page = new CPage();// CPage 是子窗体所关联的类名。

m_page->Create(IDD_XXX,this); // 通过create方法来创建一个子窗体。其中IDD_XXX是子窗体的ID号。
    CRect re;
    GetDlgItem(IDC_PICTURE).GetWindowRect(&re);
//IDC_PICTURE是在父窗体中放置的PictureCtrl控件,确定子窗体位置用的

//也可以用其他控件,我习惯用static text控件。

ScreenToClient(re); // 将屏幕坐标移到客户区坐标。可以尝试着注释一下,仔细观察一下子窗体位置的区别

m_page->MoveWindow(re);// 将子窗体移动到PictureCtrl控件的位置。

m_page->ShowWindow(SW_SHOW);//  显示子窗体。

原文地址:https://www.cnblogs.com/fpqi/p/9516973.html

时间: 2024-10-05 21:41:24

MFC 如何在一个窗体中嵌套在另一个窗体中的相关文章

网站开发进阶 十 如何将一个html页面嵌套在另一个页面中

如何将一个html页面嵌套在另一个页面中 1.IFrame引入 <IFRAME NAME="content_frame" width=100% height=30 marginwidth=0 marginheight=0 SRC="import.htm" ></IFRAME> 你会看到一个外部引入的文件,但会发现有一个类似外框的东西将其包围,可使用 <iframe name="content_frame" margi

winform 加载窗体时弹出另一个窗体并显示进度条的源码

winform 加载窗体时弹出另一个窗体并显示进度条的源码 //frmA: 源窗体 //------------------------------------------ //引用 using System.Threading; BackgroundWorker worker; public frmA() { InitializeComponent(); worker = new BackgroundWorker(); worker.DoWork += new DoWorkEventHandl

action中redirectAction到另一个命名空间中的action该如何配置

action中redirectAction到另一个命名空间中的action该如何配置,请注意namespace这儿必须是/global,而不是global,要不然找不到此action的

WinForm窗体中如何在一个窗体中取到另一个窗体的值

例如我们定义两窗体,Form1和Form2,如何在Form2中取到Form1中的一个值呢? 解决方法: 我们可以在Form2的类MyClass中定义一个静态变量,例如 public static string a = " "; 然后给这个静态变量赋值,例如 a = lblname.text; 由于静态变量的作用范围可以跨类,所以在Form1的方法中我们可以直接使用Form2的类MyClas进行调用Form2的静态变量a MyClass.a; 这样就完成了WinForm中从一个窗体中取得

如何将一个HTML页面嵌套在另一个页面中

这个在做网页中常要用到,有些通用的内容可集中放在一个页面文件中,其它要用到这些内容的页面只需要包含(引用)这个通用文件即可.这样便于维护,如果有很多网页,当通用内容需要修改时,只改一个文件就可以了,不需要每个文件单独修改. 最典型的应用比如页脚的版权信息等内容可以放在一个叫做footer.html文件里, 然后其他页面文件在页面内容的最后包含这个文件就可以了,具体例子下面有. 要html文件嵌套,最简单的办法是使用SSI(Server Side Include)技术,也就是在服务器端两个文件就被

Winfrom窗体关闭时刷新另一个窗体数据绑定控件

设置被关闭窗体为窗体1,带刷新窗体为窗体2, 1.窗体2中绑定方法设置为public,并且采用单例模式得到实例(这样在任何地方得到实例都是同一个). 2.在窗体1上注册一个事件到窗体关闭事件上 this.FormClosed += new FormClosedEventHandler(MakeThisDispose); private void MakeThisDispose(object o,EventArgs e)      {           this.Dispose();      

struts中的action匹配一个类中多个方法

<action name="emp-*" class="employeeAction" method="{1}"> 这是利用Struts2里面的自动匹配特性.*代表通配符,可以匹配任何一个字符串[1]表示匹配的参数.举个例子来说,如果你在xml文件中做了这个配置,那么当你页面里面有一个form<form action="/emp-add" method="post"> 那么,*匹配到

在vi中打开多个文件,复制一个文件中多行到另一个文件中

:set number 查看行号1.vi a.txt b.txt或者vi *.txt 2.文件间切换 :n切换到下一个文件,:wn保存再切换 :N到上一个文件,:wN保存再切换 :.=看当前行 3.比如在一个文件里:100,200y 4.:n到第二个文件,输入:600到第600行,按p粘贴 (或者输入:600p) 5.退出:wq!

关于 ScrollView 中嵌套 EditText,输入多行会使整体滚动的问题

问题: ScrollView 中嵌套 EditText,在 EditText 中输入多行,会使 ScrollView 整体滚动.如果下方内容较长,会将 EditText 顶上去,体验不好. 解决: 监听键盘的弹出和收起,在弹出时,移除 EditText 下方的所有 View,使 ScrollView 没有滚动空间:在键盘收起时,将移除的 View 重新添加回来. 注意两个问题: 在 Activity 中,设置 this.getWindow().setSoftInputMode( WindowMa