你的位置:
问答吧
-> VC
-> 问题详情
关于mfc多个对话框m_hWnd的值的问题
我创建了一个MFC DIALOG程序,之后,我插入了一个dialog,总共就有两个dialog了,dialogA,和dialogB,我在DialogB上面,使用了一个TabCtrl控件,但是总是提示这个TabCtrl的m_hWnd是空值!
作者: gbenginer
发布时间: 2010-09-29
里面加点东西试试?
作者: gofqjyie
发布时间: 2010-09-29
贴代码,把情况说清楚
作者: hztj2005
发布时间: 2010-09-29
你的CTabCtrl类对象关联了TabCtrl窗口了没?
作者: VisualEleven
发布时间: 2010-09-29
引用 3 楼 visualeleven 的回复:
你的CTabCtrl类对象关联了TabCtrl窗口了没?
关联窗口??? 怎么关联啊
作者: gbenginer
发布时间: 2010-09-29
C/C++ code
voidCOnlineMain::onCreateTab()
{
TCITEM item;
item.mask=TCIF_TEXT;
item.pszText=_T("信息面板");
m_TaskTab.InsertItem (0,&item);//创建标签m_Info.Create(IDD_INFOMAIN,&m_TaskTab);//位置信息m_Info.SetWindowPos(NULL,2,25,100,100,SWP_SHOWWINDOW );
}
C/C++ code
BOOL COnlineMain::OnInitDialog()
{
CFont*m_Font;
m_Font=newCFont;
m_Font->CreateFont(25,0,0,0,700,FALSE,FALSE,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_MODERN,_T("黑体"));
GetDlgItem(IDC_NAMETEST)->SetFont(m_Font);
onCreateTab();returnTRUE;
}
作者: gbenginer
发布时间: 2010-09-29
m_TaskTab.InsertItem (0,&item);
这一句,就提示m_TaskTab为空!
作者: gbenginer
发布时间: 2010-09-29
引用 4 楼 gbenginer 的回复:
引用 3 楼 visualeleven 的回复:
你的CTabCtrl类对象关联了TabCtrl窗口了没?
关联窗口??? 怎么关联啊
初学啊,DDX_Control,DoDataExchange()函数里关联,或者调用CWnd::SubclassDlgItem()
作者: VisualEleven
发布时间: 2010-09-29
哈哈哈,见笑了,初学啊
是的,已经关联了
void COnlineMain::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_NAMETEST, m_fontTest);
DDX_Control(pDX, IDC_BQY, m_TaskTab);
}
作者: gbenginer
发布时间: 2010-09-29
引用 6 楼 gbenginer 的回复:
m_TaskTab.InsertItem (0,&item);
这一句,就提示m_TaskTab为空!
你说的m_TaskTab为空是什么意思?标签上没有显示你设置的文字还是什么的呢?
作者: VisualEleven
发布时间: 2010-09-29
不是的,是crash了。然后调到这里
_AFXCMN_INLINE LONG CTabCtrl::InsertItem(int nItem, TCITEM* pTabCtrlItem)
{ ASSERT(::IsWindow(m_hWnd)); return (LONG)::SendMessage(m_hWnd, TCM_INSERTITEM, nItem, (LPARAM)pTabCtrlItem); }
作者: gbenginer
发布时间: 2010-09-29