请问:
在SDI和MDI的mainfram里怎样得到view的指针;
app,mainframe,doctemple,doc,view的诞生时序是怎样的?
在SDI中创建了两个模式对话框dlg1.DoModal(),dlg2.DoModal(),在dlg1中怎样才能访问dlg2的数据呀?我用dlg.GetSafeHwnd(),FindWindow(类名,标题)返回的窗口名柄均为:0x00000000,这是怎么回事?是我调用的时机不对,还是位置不对。请各位大侠不悉赐教。
在SDI和MDI的mainfram里怎样得到view的指针;
app,mainframe,doctemple,doc,view的诞生时序是怎样的?
在SDI中创建了两个模式对话框dlg1.DoModal(),dlg2.DoModal(),在dlg1中怎样才能访问dlg2的数据呀?我用dlg.GetSafeHwnd(),FindWindow(类名,标题)返回的窗口名柄均为:0x00000000,这是怎么回事?是我调用的时机不对,还是位置不对。请各位大侠不悉赐教。
解决方案 »
- 关于 xml,webservice,VC6.0
- setsockopt( hAcceptSocket, SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT,的意义?
- 一个关于StringTable的问题
- 怎样使电脑发出警告声音
- 消息,事件,参数
- 各个模块的设计属于软件开发的什么阶段?
- 如何得到hInst?高手进来救我啊
- 在哪里初始化? (在SDI-formview)想初始化listbox.在什么函数下?
- mfc怎样在图片上加文字?
- 关于通过AppWizard创建与Access数据库相连的MFC工程的问题
- 请教:分割窗口与TabCtrl问题
- 谁能提供一个win32写的mdi的程序阿?
app mainframe view doc
模态对话框能同时显示?
app,doctemple,mainframe,doc,view
////----------------------------
模态对话框不可能一下显示俩个啊。
Cdlg2 dlg2;
m_my变量 = dlg2.变量;
也就是可以直接访问啊
MDI:
CMDIFrameWnd *pFrame =
(CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;// Get the active MDI child window.
CMDIChildWnd *pChild =
(CMDIChildWnd *) pFrame->GetActiveFrame();// or CMDIChildWnd *pChild = pFrame->MDIGetActive();// Get the active view attached to the active MDI child
// window.
CMyView *pView = (CMyView *) pChild->GetActiveView();2.app mainframe doctemplate doc childframe view3.一个SDI的模式对话框一次只会存在一个,除非是不同进程/线程之间,或者有一个非模式对话框;模式对话框domodal之后,在其调用的函数里是没有直接销毁的,所以可以直接读取出dlg的数据。
假设父对话框为CFatherDlg;
子对话框为CSonDlg,其为CFatherDlg的成员变量; 在CFatherDlg中的变量有:
public:
int m_nValue;
CSonDlg m_SonDlg;在CSonDlg中的变量有:
public:
int m_nValue;
CButton m_btnTansfer;//传递m_nValue到父对话框的m_nValue;为按钮m_btnTansfer添加消息响应函数:
void CSonDlg::OnButtonTransfer()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);//根据需要,是否有需要更新的控件变量
m_nValue=100;//如果m_nValue不是控件变量;
((CFatherDlg*)(CDialog*)GetParent())->m_nValue=m_nValue;
////////注意这里要强制转换两次!!!//1:还可以利用这个方法直接给CFatherDlg中的控件赋值
//((CFatherDlg*)(CDialog*)GetParent())->SetDlgItemInt(IDC_EDIT_VALUE,m_nValue);
//2:直接从父对话框中获得变量,传到子对话框
//((CFatherDlg*)(CDialog*)GetParent())->GetDlgItem(IDC_EDIT_VALUE)->GetWindowText(m_strValue);m_strValue是CSonDlg的成员变量;可以直接看到变化;
//m_nYear=((CFatherDlg*)(CDialog*)GetParent())->m_nValue}
---no。
这个dlg变量无效之后才会。