我用tab control建立了两个页面,第二个页面的对话框类里有个list control,我想在初始化时就加点东西进去,但是放到这个对话框类的OnInitDialog里貌似没有反应啊......请问我该怎么办
解决方案 »
- 代码转化问题
- treecontrol怎么使用
- 这么简单,加入一个文本框,默人直为"abc"
- 原来是单文档多界面的程序是否可以改成多文档多界面
- 高~高~高~手进来~~~~~~~~~~~~~LocalSystem权限问题~
- 【急问SOS!!!】我写了一个API HOOK。被HOOK的函数是SetWindowHookExA。运行后能正常HOOK住这个API。但是后来... ..
- 如何访问指定的网页?(来者有分)
- 请问各位高手,MFC不用RTTI而实现类的动态检测的原理是什么?
- 映射---游戏中经常使用的技术!
- 菜鸟问题,谢谢
- VS2010第一次启动前的环境设置我乱点之后在哪里可以重新设置?
- 如何将eidt得到的数值依次打印到txt中
还有,我发现不仅仅是第二个页面失灵,原来第一个页面也失灵了,页面上的按钮明明有单击的响应函数,单击却没有任何反应
头文件里的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
}
但是我不知道应该怎么做?绘制子窗口的背景要计算坐标吧.....会不会很复杂呢