5.5--如何控制属性单窗口的尺寸?
来源:互联网 发布:韩国ls plc编程软件 编辑:程序博客网 时间:2024/05/10 10:34
通常不需要考虑属性单窗口的尺寸,仅仅设计属性页并把它加入属性单,就已经能正常工作了。这是因为属性单窗口能自动改变自身的尺寸来适应最大的属性页以及标准按钮:OK、Cancel、和Apply。然而,有时可能希望明确的控制属性单窗口的尺寸(例如:当隐藏几个属性单的标准按钮后,属性单窗口的宽度通常没有必要那么宽,尤其是当属性页相当窄的情况)。下面的技术显示改变属性单窗口的尺寸来适应需求。
第一步:实现EkResizePropertySheet()函数,该函数只在水平方向上改变属性单窗口的尺寸,这是因为标准的属性单动作根据属性页的高度自动调节属性单窗口的高度。
void EkResizePropertySheet( CPropertySheet* pPSheet, int nWidth )
{
ASSERT_VALID( pPSheet );
// 1 - 计算标签控件和属性窗口当前的尺寸
CTabCtrl* pTabCtrl = pPSheet->GetTabControl();
ASSERT( pTabCtrl != NULL );
CRect rcTabCtrl;
pTabCtrl->GetWindowRect( &rcTabCtrl );
pPSheet->ScreenToClient( &rcTabCtrl );
CRect rcPSheet;
pPSheet->GetWindowRect( &rcPSheet );
// 2 - 调整偏移大小
int dcx = rcPSheet.Width() - nWidth;
// 3 - 调整窗口尺寸
pPSheet->SetWindowPos( NULL, 0, 0,nWidth, rcPSheet.Height(), SWP_NOZORDER |
SWP_NOMOVE | SWP_NOACTIVATE );
// 4 - Resize tab control window to restore right margin
pTabCtrl->SetWindowPos( NULL,0, 0,rcTabCtrl.Width() - dcx,rcTabCtrl.Height(), SWP_NOZORDER |
SWP_NOMOVE | SWP_NOACTIVATE );
// 5 - Activate each property page to prevent drawing problem
int nCurrentPage = pPSheet->GetActiveIndex();
for( int i = 0; i < pPSheet->GetPageCount(); ++i )
{
pPSheet->SetActivePage( i );
}
pPSheet->SetActivePage( nCurrentPage );
}
第二步:在OnInitDialog()函数里调用上面定义的函数
- 5.5--如何控制属性单窗口的尺寸?
- 如何控制窗口框架的最大最小尺寸
- 如何控制窗口框架的最大最小尺寸
- 控制窗口的最大最小尺寸
- 如何控制弹出窗口的大小、尺寸、位置等的样式
- 如何得到ie窗口的尺寸
- 使用vim分割窗口时如何改变窗口的尺寸
- 使用vim分割窗口时如何改变窗口的尺寸
- 哪个 CSS 属性可控制文本的尺寸?
- PPT如何控制画布尺寸
- MFC 控制窗口最大最小尺寸
- js窗口尺寸获取常用属性
- 框架窗口的尺寸设置
- 改变窗口最大化的尺寸
- C#如何锁定窗口不允许改变尺寸
- 打开控制面板里的某一属性窗口
- js 完整的window.open()控制窗口属性:
- CSS控制元素的尺寸
- 关于 HTML5,开发者可以期待什么?
- 初来乍到
- 匈牙利命名法、骆驼命名法和帕斯卡命名法
- 七种武器武装.NET(常用开发工具介绍)转
- 关于premiere中遮罩的几点总结 数媒0802 宋志超
- 5.5--如何控制属性单窗口的尺寸?
- ARM汇编停止更新很久了,现在把大部分例题源码发上来!
- Word使用技巧收集
- (转帖)必须用this关键字的三种情况:
- Android telephone
- SUA初探
- 嵌入式工程师是怎样炼成的(四)---- 奋发图强
- Eclipse代码提示
- 设置运行cassandra