我想在非模态对话框中一个子窗体中控制其父窗体的几个按钮的使用状体,但是总是出错,大家帮我看看什么原因? 非常感谢!
父窗体
class CDlgModifyDEMEle : public CDialog
{
CButton m_SetLineCTL;
CButton m_DELCTL;
CButton m_NOTSETCTL;
CButton m_SETCTL;
public:
CModifyDEMEleBar m_ModifyEleBar;
public:
void EnableButton(bool isEnabled,int nIndex);
}void CDlgModifyDEMEle::EnableButton(bool isEnabled,int nIndex)
{
//有问题? 为什么?
if(nIndex == 1 || nIndex == 3)
{
m_DELCTL.EnableWindow(isEnabled);
m_DivLineEDIT.EnableWindow(isEnabled);
m_SetLineCTL.EnableWindow(isEnabled);
}
if(nIndex == 2 || nIndex == 3)
{
m_EnlargeEDIT.EnableWindow(isEnabled);
m_NOTSETCTL.EnableWindow(isEnabled);
m_SETCTL.EnableWindow(isEnabled);
}
}
子窗体
class CModifyDEMEleBar : public CWnd我在子窗体的某个函数中这样调用的
CDlgModifyDEMEle * pDlg = (CDlgModifyDEMEle *)this->GetParent();pDlg->EnableButton(*,*);出错的时候是说 各个按钮的m_hWnd 为空。我用GetDlgItem 也得到一个空的指针。
HWND hWndControl = ::GetDlgItem(pDlg->m_hWnd, IDC_BUTTON_SET);
pDlg->GetDlgItem(IDC_BUTTON_SET,&hWndControl);我用发送消息的形式
HRESULT hr= ::SendMessage(pDlg->m_hWnd,WM_ENABLE_BUTTON,wParam,lParam);
消息发送成功,但是父窗体就是得不到该消息.我无解了,郁闷了,无语了……大家帮忙诊断一下,为什么会这样呢?
父窗体
class CDlgModifyDEMEle : public CDialog
{
CButton m_SetLineCTL;
CButton m_DELCTL;
CButton m_NOTSETCTL;
CButton m_SETCTL;
public:
CModifyDEMEleBar m_ModifyEleBar;
public:
void EnableButton(bool isEnabled,int nIndex);
}void CDlgModifyDEMEle::EnableButton(bool isEnabled,int nIndex)
{
//有问题? 为什么?
if(nIndex == 1 || nIndex == 3)
{
m_DELCTL.EnableWindow(isEnabled);
m_DivLineEDIT.EnableWindow(isEnabled);
m_SetLineCTL.EnableWindow(isEnabled);
}
if(nIndex == 2 || nIndex == 3)
{
m_EnlargeEDIT.EnableWindow(isEnabled);
m_NOTSETCTL.EnableWindow(isEnabled);
m_SETCTL.EnableWindow(isEnabled);
}
}
子窗体
class CModifyDEMEleBar : public CWnd我在子窗体的某个函数中这样调用的
CDlgModifyDEMEle * pDlg = (CDlgModifyDEMEle *)this->GetParent();pDlg->EnableButton(*,*);出错的时候是说 各个按钮的m_hWnd 为空。我用GetDlgItem 也得到一个空的指针。
HWND hWndControl = ::GetDlgItem(pDlg->m_hWnd, IDC_BUTTON_SET);
pDlg->GetDlgItem(IDC_BUTTON_SET,&hWndControl);我用发送消息的形式
HRESULT hr= ::SendMessage(pDlg->m_hWnd,WM_ENABLE_BUTTON,wParam,lParam);
消息发送成功,但是父窗体就是得不到该消息.我无解了,郁闷了,无语了……大家帮忙诊断一下,为什么会这样呢?
解决方案 »
- 急急急(多线程)
- MFC中的菜单资源该怎么用啊?
- ████ 如何获得 FTP上的exe文件的版本号 ██████
- 请高手看看Visual C++ 6.0 MFC类库参考手册 这本书
- 以前的一个问题~~~~~~~再发一遍~~,,没有解决
- MFC基础,求教。。。。
- 一个vb做的DLL在vc中如何调用啊
- 刚给了100分,重新发问:以下SQL语句有什么问题.....?
- 有没有高手解答一下,c:\programData是用干什么的?搜狗等大公司为什么要把数据放到这个目录下呢?
- 如何将两个视上的dialog相关联?
- 怎样才能让excel里面的WorkbookEvents里的函数响应用户操作呢?高手指教!
- 请教高手pcap_前缀的函数和Packetxxxxx等一系列函数之间区别!!!
这句拿到的父窗口对不对?
确实不是CLASSWIZARD自动生成的,但该写的我都写了阿,这个影响大么?