首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

MFC Tab控件有关问题

2012-05-24 
MFC Tab控件问题小弟在写程序时 用到MFC中的Tab ctr类,并且创建了三个对话框与之关联,想实现属性页的特性。

MFC Tab控件问题
小弟在写程序时 用到MFC中的Tab ctr类,并且创建了三个对话框与之关联,想实现属性页的特性。进行关联后,创建的子对话框大小设置总是有问题,通过资源编辑器可以调整其大小至合适,但是我想通过代码控制。经过查询以后MoveWindow()可以实现其功能,测试发现此函数没有实现相应的功能,程序的流程应该没有问题,调试后也发现此函数确实执行了。不知是什么原因!! 郁闷 望大虾们 指点迷津。。
代码如下:
m_SingleUserPage.Create(IDD_DIALOG_SINGLEUSER, GetDlgItem(IDC_SERVER_TABCTR));
m_GroupUserPage.Create(IDD_DIALOG_GROUPUSER, GetDlgItem(IDC_SERVER_TABCTR));
m_MsgTransmit.Create(IDD_DIALOG_MSGTRA, GetDlgItem(IDC_SERVER_TABCTR));



CRect rectFrame;
::GetWindowRect(::GetDlgItem(this->m_hWnd, IDC_SERVER_TABCTR), &rectFrame);

rectFrame.top += 10;
rectFrame.bottom -= 60;
rectFrame.right -= 40;
rectFrame.left += 10;

m_SingleUserPage.MoveWindow(&rectFrame, FALSE); [color=#FF00FF]//此函数没有达到预期的效果
m_GroupUserPage.MoveWindow(&rectFrame, FALSE);
m_MsgTransmit.MoveWindow(&rectFrame, FALSE);

m_SingleUserPage.ShowWindow(SW_SHOW );

[解决办法]
CRect rectFrame; 
::GetWindowRect(::GetDlgItem(this->m_hWnd, IDC_SERVER_TABCTR), &rectFrame);
ScreenToClient(&rectFrame);//应该加上这一句吧
[解决办法]
CRect rectFrame; 
::GetClientRect(::GetDlgItem(this->m_hWnd, IDC_SERVER_TABCTR), &rectFrame); 
ScreenToClient(&rectFrame);

试试


[解决办法]
MoveWindow参数给出的坐标是相对于其父窗口的客户区的。
把GetWindowRect改成GetClientRect,不要再做坐标转换,MoveWindow的时候要留出标签的位置。

热点排行