如何控制父窗口的控件 父窗口按钮启动一个模态对话框我需要利用这个对话框的按钮来控制父窗口向其List控件加Item我试过用GetDlgItem函数来获得父窗口指针但返回空 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CWnd* pWnd = GetParent();可以得到父窗口的指针 GetParent()这个我也试过CImageListCtrl *pImageList = (CImageListCtrl*)(pParent->GetDlgItem(IDC_LIST_SCAN_IMG));父窗口的指针得到了但CImageListCtrl的指针还是空哪位高人知道怎么回事 模态对话框的两个构造重载 explicit CDialog(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL); explicit CDialog(UINT nIDTemplate, CWnd* pParentWnd = NULL);指定pParentWnd,然后就可以用CWnd* pWnd = GetParent();获得父窗口指针。 父窗口指针可以获得但List控制的自制类无法获得 CParentDlg* pDlg = (CParentDlg*)GetParent();这样就可以得到自制类 你还没理解我的意思我用CWnd *pParent = GetParent();获得了父窗口的指针了我用这个父窗口指针的GetDlgItem()函数取获得我继承CListCtrl派生的CImageListCtrl时得到的是空CImageListCtrl *pImageList = (CImageListCtrl*)pParent->GetDlgItem(IDC_LIST_SCAN_IMG);为什么啊 用EnumChildWindows()看能不能够获取到CImageListCtrl的句柄(再根据需要转成指针) 单步跟踪一下GetDlgItem内的执行情况,没有提供代码信息是问不出什么结果的。 我也遇到过这个问题,后来给控件关联了一个对象,然后用pParent->控件对象 解决了问题 还是得不到并且我试着用GetDlgItem函数取获得所在窗口的控件指针也得不到 我试过用全局的指针了CXBHealthExamApp *pApp = (CXBHealthExamApp*)::AfxGetApp();CScanInfoDlg *pMain = (CScanInfoDlg*)pApp->m_pMainWnd;然后再调用我在这个类中定义的控件的变量结果运行直接报错了 我是说 amdlinux() 说的那种我初学VC对它的消息机制不态熟可以贴些实例代码或发个源码吗 那位告诉我下对父窗口的LIST控件怎么发送消息并且可以通过参数把一个变量传过去让list添加item GetOwner()->GetDlgItem(...)用这个也返回空 你在创建子窗口的时候有没有指定父窗口这个关系?如:m_child.Create(.....this) 按理说是可以使用GetParent()->GetDlgItem(ID_YOUR);来得到的实在不行的话,这样,声明一个Load函数Load(CWnd* pParent,CWnd *YouCtl){ pSaveList=YouCtrl; Create(pParent,...);}最好把关键源代码发给我,用短消息。 我原来是用DoModal的方式后来用了m_scanAcquireDlg.Create(IDD_DIALOG_SCANACQUIRE,this)这种方式pParent->GetDlgItem(IDC_LIST_SCAN_IMG)还是空 我把整个过程重新叙述一下吧在父窗口类中的操作:List控件声明的一个编写的CListCtrl的派生类CImageListCtrl的对象里面有几个添加缩略图的函数m_scanAcquireDlg是子窗口的对象m_scanAcquireDlg.DoModal();弹出窗口在子窗口类中的操作:CWnd *pParent = GetParent();CImageListCtrl *pImageList = (CImageListCtrl*)(pParent->GetDlgItem(IDC_LIST_SCAN_IMG));然后像通过pImageList调用父窗口List控件的函数在里面添加缩略图哪位高人能帮帮我分析下为什么不行万分感谢 模态对话框不能动态的改变它父窗口的的控件,可以用非模态。可以通过pubilc的全局变量或发送消息的方式让父窗口去改变。 非模态对话框GetDlgItem(IDC_LIST_SCAN_IMG)得到的也是空全局变量的方式也不行消息怎么把子窗口的变量传过去我不太会可以赐教下吗 我就用的模态的阿,怎么我这里可以,我的过程是这样的,看看你有没有用.CRightBtView 是从FormView继承来.上面放了一个listctrl--m_listctrlvoid CRightBtView::OnDblclkList1(NMHDR *pNMHDR, LRESULT *pResult){ HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR; // TODO: Add your control notification handler code here int i = m_listctrl.GetNextItem(-1, LVNI_SELECTED); if (i < 0) return; CString temp; temp = m_listctrl.GetItemText(i,1); ////////////////////////////////////////////////////////////////////////// CMainFrame *frame = (CMainFrame*)m_ParentFrame; CListCtrlView *ctrlview = (CListCtrlView*)frame->m_wndSplitter2.GetPane(1,0); strcpy(ticket_NO,ctrlview->current_NO); CDlgCzpEditSec dlg; dlg.tracsFrame = m_ParentFrame; dlg.DoModal();然后在dlg类的保存或者其他操作的时候,利用m_parentframe来得到Crightbtview,然后得到m_listctrl的变量的指针,直接使用.程序现在正常使用. 先判断父窗口是不是空CWnd* pParent = GetParent();if( pParent ){} 做LED屏幕管理软件思路 CString类型是只在vc里才有吗? 请问各位高手,像msn一样在窗口右下角的提示框怎么做呀! 关于UDP广播 新手求教:如何获得每个象素的RGB值或者灰度值? 一个关于listcontrol控件的问题 一个突然想起来的很简单的问题,大家不要笑话 时间复杂度问题 fqq零分! 怎样得到一个线程的状态?(是挂起还是在运行,谢谢了) 关于 BHO 的问题 ,请各位帮忙 关于用VC编写驱动程序的问题
CImageListCtrl *pImageList = (CImageListCtrl*)(pParent->GetDlgItem(IDC_LIST_SCAN_IMG));
父窗口的指针得到了
但CImageListCtrl的指针还是空哪位高人知道怎么回事
explicit CDialog(UINT nIDTemplate, CWnd* pParentWnd = NULL);指定pParentWnd,然后就可以用CWnd* pWnd = GetParent();获得父窗口指针。
但List控制的自制类无法获得
我用CWnd *pParent = GetParent();获得了父窗口的指针了
我用这个父窗口指针的GetDlgItem()函数取获得我继承CListCtrl派生的CImageListCtrl时得到的是空
CImageListCtrl *pImageList = (CImageListCtrl*)pParent->GetDlgItem(IDC_LIST_SCAN_IMG);为什么啊
CXBHealthExamApp *pApp = (CXBHealthExamApp*)::AfxGetApp();
CScanInfoDlg *pMain = (CScanInfoDlg*)pApp->m_pMainWnd;
然后再调用我在这个类中定义的控件的变量
结果运行直接报错了
可以贴些实例代码或发个源码吗
并且可以通过参数把一个变量传过去
让list添加item
用这个也返回空
m_child.Create(.....this)
GetParent()->GetDlgItem(ID_YOUR);来得到的实在不行的话,这样,声明一个Load函数
Load(CWnd* pParent,CWnd *YouCtl)
{
pSaveList=YouCtrl;
Create(pParent,...);
}最好把关键源代码发给我,用短消息。
后来用了m_scanAcquireDlg.Create(IDD_DIALOG_SCANACQUIRE,this)
这种方式
pParent->GetDlgItem(IDC_LIST_SCAN_IMG)
还是空
List控件声明的一个编写的CListCtrl的派生类CImageListCtrl的对象
里面有几个添加缩略图的函数m_scanAcquireDlg是子窗口的对象
m_scanAcquireDlg.DoModal();弹出窗口在子窗口类中的操作:
CWnd *pParent = GetParent();
CImageListCtrl *pImageList = (CImageListCtrl*)(pParent->GetDlgItem(IDC_LIST_SCAN_IMG));
然后像通过pImageList调用父窗口List控件的函数在里面添加缩略图哪位高人能帮帮我分析下为什么不行
万分感谢
GetDlgItem(IDC_LIST_SCAN_IMG)得到的也是空
全局变量的方式也不行消息怎么把子窗口的变量传过去我不太会可以赐教下吗
CRightBtView 是从FormView继承来.上面放了一个listctrl--m_listctrl
void CRightBtView::OnDblclkList1(NMHDR *pNMHDR, LRESULT *pResult)
{
HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR;
// TODO: Add your control notification handler code here
int i = m_listctrl.GetNextItem(-1, LVNI_SELECTED);
if (i < 0) return;
CString temp;
temp = m_listctrl.GetItemText(i,1);
//////////////////////////////////////////////////////////////////////////
CMainFrame *frame = (CMainFrame*)m_ParentFrame;
CListCtrlView *ctrlview = (CListCtrlView*)frame->m_wndSplitter2.GetPane(1,0);
strcpy(ticket_NO,ctrlview->current_NO);
CDlgCzpEditSec dlg;
dlg.tracsFrame = m_ParentFrame;
dlg.DoModal();
然后在dlg类的保存或者其他操作的时候,利用m_parentframe来得到Crightbtview,然后得到m_listctrl的变量的指针,直接使用.程序现在正常使用.
if( pParent )
{
}