我的对话框程序用上了TAB控件,对话框的类为Cpwmdlg,我
在这个对话框建个按钮为test1宁外我在TAB之中的一个窗口类CTabTrack也见了一个按钮test2,然后我想按test1案件就隐藏test2按键,我在test1里加的是GetDlgItem(IDC_TEST2)->ShowWindow(FALSE);这个不行,CTabTrack::GetDlgItem(IDC_IN1)->ShowWindow(FALSE);也不行,
报错为error C2352: 'CWnd::GetDlgItem' : illegal call of non-static member function。我因该怎么做,类鱼类之间的联系我还是有点搞不清楚。

解决方案 »

  1.   

    两个窗口中的按钮不能直接用的,lzShowWindow函数也不是那么用的。lz可以查看一下msdn。
    窗口之间可以发送自定消息来处理。
      

  2.   

    1.发送消息是个很好的选择,使用消息。
    2.正确找到需要隐藏的窗口句柄,然后再ShowWindow(FALSE);按钮也是窗口。
    两种方法均可。
      

  3.   

    随便baidu下VC 自定义消息就可以看到第一步:定义消息。#define WM_MY_MESSAGE (WM_USER+100)第二步:实现消息处理函数。该函数使用WPRAM和LPARAM参数并返回LPESULTLRESULT C Dlg::OnMyMsg(WPARAM wParam, LPARAM lParam)
    {return 0;}第三步:在类头文件的AFX_MSG块中说明消息处理函数。 virtual BOOL OnInitDialog();
     afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
     afx_msg void OnPaint();
     afx_msg HCURSOR OnQueryDragIcon();
     afx_msg LRESULT OnMyMsg(WPARAM, LPARAM);                //复制这里 DECLARE_MESSAGE_MAP()第四步:在用户类的消息块中,使用ON_MESSAGE宏指令将消息映射到消息处理函数中。BEGIN_MESSAGE_MAP(C自动填表Dlg, CDialog)
     ON_WM_SYSCOMMAND()
     ON_WM_PAINT()
     ON_WM_QUERYDRAGICON()
     ON_MESSAGE(WM_MY_MESSAGE, OnMyMsg)                        //复制这里 //}}AFX_MSG_MAP
    END_MESSAGE_MAP()