Visual C++ 7.1Visual Studio 6Visual C++ 7.0Windows 2003Windows 2000Visual C++ 6.0Windows XPMFC中级开发Visual StudioWindowsC++
控件定位器 -- 无需更改代码即可重新定位子窗口





3.00/5 (7投票s)
2003年6月25日

78801

1897
这是一个用于控件重新定位的小类。它可以创建一个 INI 文件,记录您的控件的所有方面。
引言
控件定位器 (Control Poser) - 这是一个用于控件重新定位的小类。它可以创建一个 INI 文件,记录您的控件(子窗口)的所有方面。例如:
- 启用
- Visibility
- 默认值(选中或文本标题)
- 大小和屏幕位置
因此,当您想要更改它们时,只需更新此 INI 文件,而无需重新编译您的代码。有时这有助于创建高度灵活的用户界面,尤其是在客户不知道他们想要什么或您的需求经理性格多变时 :-)
如何使用
- 在您的对话框/主窗口代码中包含头文件 CtrlPositioner.h。
- 在
OnInitDialog
中添加CCtrlPositioner poser; poser.SetDlg(this); //Add the control you wish to control poser.AddCtrl(IDC_STATIC); poser.AddCtrl(IDC_CHECK1); poser.AddCtrl(IDC_EDIT1); poser.AddCtrl(IDC_BUTTON1); //poser.SavePosData(); //This creates an ini file for you first time, //so latter you can just change the file. //This line should be commented //out after you got the file poser.ReadPosData(); //Read Position from ini file //Organize control regarding your ini definition. poser.PositionControls();
注释
- INI 文件名为 CtrlPos.ini,这可以在 CtrlPositioner.cpp 中轻松更改。
- 这个类也应该适用于其他父窗口,而不仅仅是
CDialog
,尽管我从未测试过 :-( - 目前,INI 文件中使用父窗口的标题作为节名,这不太好,因为可能有多个窗口具有相同的标题。如果您有任何建议,我很乐意改进这一点?