我界面上有一个属性页,我的结构如下:class CViewPropertySheet : public CPropertySheetclass CViewPropertyPage : public CPropertyPageclass CMyFormView : public CPropPgFormView
class CPropPgFormView : public CFormViewclass CPropPage1 : public CViewPropertyPage(第一个页面)class CPropPage2 : public CViewPropertyPage(第二个页面)class CPropPage3 : public CViewPropertyPage(第三个页面)class CPropPage4 : public CViewPropertyPage (第四个页面)
我这个属性页有四个页面组成,我想在点击第一个属性页的标签的时候,对这个对话框进行一些操作。在第三个标签页不显示的时候做一些操作,请问这个怎么处理?应该用什么事件?这四个页面是四个对话框,我的想法是,在这个对话框获得焦点,或者失去焦点的时候进行操作,但是根本不执行获得焦点或者得到焦点的代码
void CPropPage4::OnKillFocus(CWnd* pNewWnd)
{
CViewPropertyPage::OnKillFocus(pNewWnd);
GetDlgItem(IDC_EDIT1)->SetWindowText("");
GetDlgItem(IDC_EDIT2)->SetWindowText("");
GetDlgItem(IDC_EDIT3)->SetWindowText("");
GetDlgItem(IDC_EDIT4)->SetWindowText("");
GetDlgItem(IDC_EDIT_START_T)->SetWindowText("");
GetDlgItem(IDC_EDIT_END_T)->SetWindowText("");
GetDlgItem(IDC_EDIT_T)->SetWindowText("");
UpdateData(TRUE);
}
class CPropPgFormView : public CFormViewclass CPropPage1 : public CViewPropertyPage(第一个页面)class CPropPage2 : public CViewPropertyPage(第二个页面)class CPropPage3 : public CViewPropertyPage(第三个页面)class CPropPage4 : public CViewPropertyPage (第四个页面)
我这个属性页有四个页面组成,我想在点击第一个属性页的标签的时候,对这个对话框进行一些操作。在第三个标签页不显示的时候做一些操作,请问这个怎么处理?应该用什么事件?这四个页面是四个对话框,我的想法是,在这个对话框获得焦点,或者失去焦点的时候进行操作,但是根本不执行获得焦点或者得到焦点的代码
void CPropPage4::OnKillFocus(CWnd* pNewWnd)
{
CViewPropertyPage::OnKillFocus(pNewWnd);
GetDlgItem(IDC_EDIT1)->SetWindowText("");
GetDlgItem(IDC_EDIT2)->SetWindowText("");
GetDlgItem(IDC_EDIT3)->SetWindowText("");
GetDlgItem(IDC_EDIT4)->SetWindowText("");
GetDlgItem(IDC_EDIT_START_T)->SetWindowText("");
GetDlgItem(IDC_EDIT_END_T)->SetWindowText("");
GetDlgItem(IDC_EDIT_T)->SetWindowText("");
UpdateData(TRUE);
}
解决方案 »
- 请问如何激活自身窗口?感觉很简单!但我试了很多函数,都失败!!
- 在 vc7.0可以编译的一个头文件 在 vc6.0 编译不了,怎么改呢? 谢谢
- 用VC做网吧管理系统,服务端连结客户端的问题。50分求思路
- easy问题:祖父目录的字符串表示
- [咨询]毕业生和公司劳动纠纷应该怎么解决?
- 请教收发短信的问题
- 请教?我在程序中加入了对 Excel 文件操作的代码,但当我把程序放到一个没有安装 Office 的环境中,
- 请大家回答一些面试题?thanks!
- 如何做一个椭圆形的按钮?
- 请各位帮忙:如何读出并播放数据库中的wav文件?
- 请问.suo或Thumbs.db是什么性质的文件?CreateFile用CREATE_ALWAYS打开时,为什么打不开?
- SetWindowlong 函数的俩个风格
在第三个标签页不显示的时候做一些操作,是什么意思呢?
在第4页KillFocus的时候发生了什么?
BOOL CViewPropertyPage::OnSetActive()
{
CMyFormView* pView = (CMyFormView*)GetParent()->GetParent();
if (pView->m_PropSheet.GetActiveIndex()==0)
{
CPropPage1* cp1;
cp1=(CPropPage1 *)pView->m_PropSheet.GetPage(0);
cp1->GetDlgItem(IDC_LIST2)->ShowWindow(SW_HIDE);
cp1->GetDlgItem(IDC_MONTHCALENDAR1)->ShowWindow(SW_SHOW);
} return CPropertyPage::OnSetActive();
}这样就可以了,谢谢各位的回答,结贴
3楼的办法还不错呢!
然后再SelectChange处理函数里面加上对对应的页面的初始化函数就可以实现你需要的效果了。