您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> VC/MFC >> CTabSheet类,插入页位置设置??

CTabSheet类,插入页位置设置??

来源:网络整理     时间:2016/7/6 17:09:48     关键词:

关于网友提出的“ CTabSheet类,插入页位置设置??”问题疑问,本网通过在网上对“ CTabSheet类,插入页位置设置??”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: CTabSheet类,插入页位置设置??
描述:

各位大哥请指点一下,按照网上的CTabSheet类方法在一个对话框中插入了一个属性页对话框,比如先建立两个子对话框CDIALOG1 page1;
CDIALOG2 page2;
CDIALOG1,CDIALOG2都是Cdialog类,然后将他们添加到主对话框的Tab控件中:
m_sheet.AddPage("1",&page1,IDD_DIALOG1) ;
m_sheet.AddPage("2",&page2,IDD_DIALOG2) ;
m_sheet.Show();
 m_sheet是Tab控件的CTabSheet类的控制变量,其中子对话框位置设置的代码如下:
void CTabSheet::SetRect()
{
 CRect tabRect, itemRect;
 int nX, nY, nXc, nYc;
 GetClientRect(&tabRect);
 GetItemRect(0, &itemRect);
 nX=itemRect.left;
 nY=itemRect.bottom+1;
 nXc=tabRect.right-itemRect.left-2;
 nYc=tabRect.bottom-nY-2;
 m_pPages[0]->SetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_SHOWWINDOW);
 for( int nCount=1; nCount < m_nNumOfPages; nCount++ )
  m_pPages[nCount]->SetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_HIDEWINDOW);
}
但是显示出来的情况是子对话框在屏幕的左上角,几乎是屏幕(0,0)的位置,跟Tab标签的位置相差甚远,
想请问一下各位大哥,应该怎样编写代码才能让子对话框正好显示在Tab标签的位置上,谢谢大家了!!!


解决方案1:

SetWindowPos的坐标相对于父窗口的客户区,那你的m_pPages之类的是不是Child样式?


以上介绍了“ CTabSheet类,插入页位置设置??”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2344395.html

相关图片

相关文章