CPropertyPage 有一个CPropertySheet对象,两个CPropertyPage对象,用AddPage()将两个CPropertyPage对象 page1,page2加入到CPropertySheet里。如何改变page1和page2的大小呢?我在OnInitDialog()里用了page1.MoveWindow(),page2.MoveWindow()有错误?该如何来实现改变他们的大小呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 page1,page2是CPropertySheet的子窗口,受它限制,你应该调整CPropertySheet的大小... 使用CPropertySheet时,子对话框是在第1次显示前才创建的,在子对话框还没有创建之前,对其MoveWindow当然会出错。可以重载CPropertyPage::OnSetActive函数来处理。 如果是静态创建的,那么CPropertySheet的大小会由CPropertyPage中较大的那个决定用代码动态创建,不太清楚,关注!!! 用过静态绑定,sheet的大小会由page中较大的来决定。 我是用CTabCtrl控件添加属性页的,使属性页在控件范围之内在主对话框的OnInitDialog()内初始化 : // TODO: Add extra initialization here //初始化m_tab控件 m_tab.InsertItem(0," 呵呵,茂叶工作室 "); m_tab.InsertItem(1," 嘻嘻 "); m_tab.InsertItem(2," 哈哈,www.maoyeah.com "); //建立属性页各页 page0.Create(IDD_DIALOG0,GetDlgItem(IDC_TAB1)); page1.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1)); page2.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1)); //设置页面的位置在m_tab控件范围内 CRect rect; m_tab.GetClientRect(&rect); rect.top+=20; rect.bottom-=4; rect.left+=4; rect.right-=4; page0.MoveWindow(&rect); page1.MoveWindow(&rect); page2.MoveWindow(&rect); m_tab控件属性页选择时显示各页void CMy3Dlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here int CurSel; CurSel=m_tab.GetCurSel(); switch(CurSel) { case 0: page0.ShowWindow(TRUE); page1.ShowWindow(FALSE); page2.ShowWindow(FALSE); break; case 1: page0.ShowWindow(FALSE); page1.ShowWindow(TRUE); page2.ShowWindow(FALSE); break; case 2: page0.ShowWindow(FALSE); page1.ShowWindow(FALSE); page2.ShowWindow(TRUE); break; default: ; } *pResult = 0; } 自绘的CListBox控件,双击获得某行的内容,怎么全是乱码? 类的CString成员是否需要深拷贝? 如何让edit BOX透明或者半透明?一定要重绘吗? 各位给我看下这个字符指针的问题,运行老是报错,先谢了! 如何让CtrlList中的字体大一点??? ★★★着急,socket服务端怎样响应多个客户端的连接?★★★ WebBrowser中右键 选在新窗口中打开 如果得到按下处的链接地址 初学者的问题,不要不回答哟 大文件读写问题200分请教 怎樣用代碼開啟開始菜單? 串口控件 注销 file:winocc.cpp line:345 发现一个规律,调试CreateProcess函数,会出错
可以重载CPropertyPage::OnSetActive函数来处理。
用代码动态创建,不太清楚,关注!!!
在主对话框的OnInitDialog()内初始化 :
// TODO: Add extra initialization here //初始化m_tab控件
m_tab.InsertItem(0," 呵呵,茂叶工作室 ");
m_tab.InsertItem(1," 嘻嘻 ");
m_tab.InsertItem(2," 哈哈,www.maoyeah.com "); //建立属性页各页
page0.Create(IDD_DIALOG0,GetDlgItem(IDC_TAB1));
page1.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1));
page2.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1));
//设置页面的位置在m_tab控件范围内
CRect rect;
m_tab.GetClientRect(&rect);
rect.top+=20;
rect.bottom-=4;
rect.left+=4;
rect.right-=4;
page0.MoveWindow(&rect);
page1.MoveWindow(&rect);
page2.MoveWindow(&rect); m_tab控件属性页选择时显示各页
void CMy3Dlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int CurSel;
CurSel=m_tab.GetCurSel();
switch(CurSel)
{
case 0:
page0.ShowWindow(TRUE);
page1.ShowWindow(FALSE);
page2.ShowWindow(FALSE);
break;
case 1:
page0.ShowWindow(FALSE);
page1.ShowWindow(TRUE);
page2.ShowWindow(FALSE);
break;
case 2:
page0.ShowWindow(FALSE);
page1.ShowWindow(FALSE);
page2.ShowWindow(TRUE);
break;
default: ;
} *pResult = 0;
}