我用tab control建立了两个页面,第二个页面的对话框类里有个list control,我想在初始化时就加点东西进去,但是放到这个对话框类的OnInitDialog里貌似没有反应啊......请问我该怎么办

解决方案 »

  1.   

    贴代码:
    还有,我发现不仅仅是第二个页面失灵,原来第一个页面也失灵了,页面上的按钮明明有单击的响应函数,单击却没有任何反应
    头文件里的CDSBigHomeworkDlg对话框类,两个页面都是对话框,类为CDialog,页面为m_page1,m_page2
    class CDSBigHomeworkDlg : public CDialogEx
    {
    // 构造
    public:
    CDSBigHomeworkDlg(CWnd* pParent = NULL); // 标准构造函数
    // 对话框数据
    enum { IDD = IDD_DSBIGHOMEWORK_DIALOG };
    protected:
    virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持// 实现
    protected:
    HICON m_hIcon; // 生成的消息映射函数
    virtual BOOL OnInitDialog();
    afx_msg void OnPaint();
    afx_msg HCURSOR OnQueryDragIcon();
    DECLARE_MESSAGE_MAP()
    public:
    // afx_msg UINT OnNotifyFormat(CWnd *pWnd, UINT nCommand);
    afx_msg void OnBnClickedOk();
    CTabCtrl m_Tab;
    CDialog m_page1,m_page2;

    afx_msg void OnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult);
    };
    这个是我的主对话框类里的初始化函数,红色的一段是我向tab control里添加两个页面的过程
    BOOL CDSBigHomeworkDlg::OnInitDialog()
    {
    CDialogEx::OnInitDialog();


    // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
    //  执行此操作
    SetIcon(m_hIcon, TRUE); // 设置大图标
    SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 m_Tab.InsertItem(0,_T("上传文件"));
    m_Tab.InsertItem(1,_T("搜索资源"));
    m_page1.Create (IDD_DIALOG1,&m_Tab); 
    m_page2.Create (IDD_DIALOG2,&m_Tab);

     CRect rc;
         m_Tab.GetClientRect(rc);
         rc.top += 22;
         rc.bottom -= 2;
         rc.left += 1;
     rc.right -= 3;
         m_page1.MoveWindow(&rc);
         m_page2.MoveWindow(&rc);
     m_page1.ShowWindow(SW_SHOW);
     m_page2.ShowWindow(SW_HIDE);

    return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
    }这个是第二个页面的类CListDlg的初始化函数
    BOOL CListDlg::OnInitDialog()
    {
    CDialog::OnInitDialog();
    m_List.SetExtendedStyle(m_List.GetExtendedStyle()|LVS_EX_FULLROWSELECT|LVS_EX_CHECKBOXES);
    m_List.InsertColumn(0, _T("文件名"));
    m_List.InsertColumn(1, _T("关键字1"));
    m_List.InsertColumn(2, _T("关键字2"));
    m_List.InsertColumn(3, _T("关键字3"));
    m_List.InsertColumn(4, _T("发布人"));
    return TRUE;  // return TRUE unless you set the focus to a control
    // 异常: OCX 属性页应返回 FALSE
    }
      

  2.   

    额,抱歉,我找到错了...是因为CDialog m_page1,m_page2;感谢各位的提醒....不过还有一个问题,就是我把父窗口的背景设置成了图片,现在想让子窗口能够也显示这个图片,就是说子窗口上的控件仍然显示,但是背景就为透明了,直接显示父窗口的背景。
    但是我不知道应该怎么做?绘制子窗口的背景要计算坐标吧.....会不会很复杂呢