MFC 如何把一个窗体嵌入到另一个窗体中 本帖最后由 xianglitian 于 2010-04-14 10:52:34 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 创建一个对话框, 设置其属性为CHILD, NONE, 然后非模态出来, ShowWindow 就可以了 怎么个不成功法?类型要设置成child 类型是child,none,但运行 的时候报错,我不是要弹出,我是要嵌入,1楼没看清楚题目 对话框里,用Create然后设置父窗口的方式有可能使你附上的子窗口不能取得键盘焦点,处理之类的消息。既然是你自己的代码为什么要在Init的时候创建两个Dlg?完全可以在更上一层处理的。 CWnd wndChild;m_wndChild.Create(AfxRegisterWndClass(NULL), TEXT("child"), WS_VISIBLE |WS_CHILD, &rect,this, IDC_COSTOMER_CHILD); 子Dialog设置为 Child None ,父Dialog放一个picture控件设置为FrameCCoverFile m_coverfile;//子窗口类CRect rcDlgs; GetDlgItem(IDC_DLG_AREA)->GetWindowRect(rcDlgs);//Picture控件 ScreenToClient(rcDlgs);m_coverfile.Create(IDD_COVER, this);m_coverfile.MoveWindow(&rcDlgs);m_coverfile.ShowWindow(SW_SHOW); 设置其属性为CHILD, NONE /* 将子窗体嵌入父窗体中 */SetParent(HWND/*子窗体窗口句柄*/,HWND/*父窗口窗体句柄*/);/*例如:如果你运行着一个Windows系统中自带的记事本程序,你可以调用下面这段代码会把记事本嵌入你的CMyDialog种*/void DoSomething(CDialog* _dialog){ HWND hNotepad = ::FindWindow(_T("Notepad"),NULL); SetParent(hNotepad,_dialog->GetSafeWnd());} 你Create的时候指定你的父窗口为你要嵌入的窗口,风格中要有WS_CHILD属性 关于程序编译的问题 如何在RichEdid的编辑区将某行某列用别的颜色来填充背景?? 怎样让 ListCtr 有垂直滚动条,去掉水平滚动条 如何防止界面变乱? 如何修改菜单栏文字大小?? 如何实现象qq好友拦里的显示效果,当鼠标移动到头像上时头像和字体有变化,以下试我想得方法,感觉太麻烦,有更好的方法吗? 100分!LSA求助 ftp链接的问题 求救:如何用VC编写一个可以发送带附件Email的程序 学习一下安装程序的制作,顺便给参与者散点分。 如何获得CImage当前读入图像文件的编码格式? 一道c++填空题
CCoverFile m_coverfile;//子窗口类
CRect rcDlgs;
GetDlgItem(IDC_DLG_AREA)->GetWindowRect(rcDlgs);//Picture控件
ScreenToClient(rcDlgs);
m_coverfile.Create(IDD_COVER, this);
m_coverfile.MoveWindow(&rcDlgs);
m_coverfile.ShowWindow(SW_SHOW);
/* 将子窗体嵌入父窗体中 */
SetParent(HWND/*子窗体窗口句柄*/,HWND/*父窗口窗体句柄*/);/*
例如:如果你运行着一个Windows系统中自带的记事本程序,你可以调用下面这段代码会把记事本嵌入你的CMyDialog
种
*/void DoSomething(CDialog* _dialog){
HWND hNotepad = ::FindWindow(_T("Notepad"),NULL);
SetParent(hNotepad,_dialog->GetSafeWnd());
}