新建了个对话框,上面有以编辑框CEdit,用来显示视频(不知道能不能在这上面进行显示)和其他的编辑框,不可更改的内容的以上面建立的对话框新建了个类然后在主框架类CMainFrame里,进行这样的调用在消息处理函数中执行:
//sdlg是主框架的成员 //IDD_DIALOG10为CShowComView对应的对话框的 sdlg=new CShowComView(this); sdlg->Create(IDD_DIALOG10); sdlg->m_strRoom=strroo;//为对话框类的成员变量赋值
sdlg->m_strCom=strcom; sdlg->ShowWindow(SW_SHOW);首先对话框还是能显示的,但是对话框界面对应的编辑框都是为空,没有数据,但事实上应该都有,因为;//为对话框类的成员变量赋值
但是,我调试程序的时候发现,对话框上的编辑框控件,对应的句柄m_hWnd变量为不可用,或者是无效的
//sdlg是主框架的成员 //IDD_DIALOG10为CShowComView对应的对话框的 sdlg=new CShowComView(this); sdlg->Create(IDD_DIALOG10); sdlg->m_strRoom=strroo;//为对话框类的成员变量赋值
sdlg->m_strCom=strcom; sdlg->ShowWindow(SW_SHOW);首先对话框还是能显示的,但是对话框界面对应的编辑框都是为空,没有数据,但事实上应该都有,因为;//为对话框类的成员变量赋值
但是,我调试程序的时候发现,对话框上的编辑框控件,对应的句柄m_hWnd变量为不可用,或者是无效的
来修改一下你的m_hWnd变量试一试
sdlg->UpdateData(FALSE); 试试
通过FindWind固然可以,但对于对话框上的控件,如何去FIND我觉得很奇怪sdlg=new CShowComView(this);比如,执行这句下面后,发现sdlg已经分配了地址, 但是,到了下面后,你在查看sdlg的值,会发现,sdlg的值有效,但是hwnd为0xcdcdcdcd 虽然不是为NULL,但这个应该为无效的句柄,我觉得很奇怪
sdlg->Create(IDD_DIALOG10); 还有里,m_strcom和m_strroom为对话框上的两个编辑框,我在这里给其赋值,但对话框显示后,那两个编辑框是空,根本就没有显示赋给他们的值
sdlg->m_strRoom=strroo;//为对话框类的成员变量赋值
sdlg->m_strCom=strcom;
==============
以前倒是没又遇到,可能是,以前都是建立模式对话框
但这次需要用NEW建立非模式对话框NEW创建后,明明是已经成功的分配了地址,但为什么对话框上的控件的句柄值显示的为0xcdcdcdcd不是一直说,无效的地址一般为NULL吗
到底还有哪些地址是为无效的
现在想买些这方面的书,感觉市面上这类书太少了
sdlg=new CShowComView(this);
sdlg->m_strRoom=strroo;
sdlg->m_strCom=strcom;
sdlg->Create(IDD_DIALOG10);
sdlg->ShowWindow(SW_SHOW);
要保证你的m_strRoom和m_strCom和控件关联正确。
new CShowComView 是分配内存而已,Create之后窗口句柄才有。
也不是,sdlg->Create(IDD_DIALOG10); 后,Sdlg的地址是有效的,但是sdlg本身对话框的hwnd就为0xcdcdcdcd
但是sdlg对应的对话框却能显示出来
郁闷了
一个对话框句柄都是无效的,为什么还要显示出来
程序也不报错不异常的
或者你干脆在他的OnPaint里面看看对话框上的EDIT直接用GetDlgItem就能得到hWnd了另外显示图片等其他东西的话,一般是用CStatic,很少见用CEdit的,edit一般就是来处理字符的
鼠标移动到sdlg上显示的啊