65.9K
CodeProject 正在变化。 阅读更多。
Home

控件定位器 -- 无需更改代码即可重新定位子窗口

starIconstarIconstarIconemptyStarIconemptyStarIcon

3.00/5 (7投票s)

2003年6月25日

viewsIcon

78801

downloadIcon

1897

这是一个用于控件重新定位的小类。它可以创建一个 INI 文件,记录您的控件的所有方面。

Sample Image - Control_Positioner.gif

引言

控件定位器 (Control Poser) - 这是一个用于控件重新定位的小类。它可以创建一个 INI 文件,记录您的控件(子窗口)的所有方面。例如:

  1. 启用
  2. Visibility
  3. 默认值(选中或文本标题)
  4. 大小和屏幕位置

因此,当您想要更改它们时,只需更新此 INI 文件,而无需重新编译您的代码。有时这有助于创建高度灵活的用户界面,尤其是在客户不知道他们想要什么或您的需求经理性格多变时 :-)

如何使用

  1. 在您的对话框/主窗口代码中包含头文件 CtrlPositioner.h
  2. 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(); 

注释

  1. INI 文件名为 CtrlPos.ini,这可以在 CtrlPositioner.cpp 中轻松更改。
  2. 这个类也应该适用于其他父窗口,而不仅仅是 CDialog,尽管我从未测试过 :-(
  3. 目前,INI 文件中使用父窗口的标题作为节名,这不太好,因为可能有多个窗口具有相同的标题。如果您有任何建议,我很乐意改进这一点?
控件定位器 -- 重新定位您的子窗口,无需更改代码 - CodeProject - 代码之家
© . All rights reserved.