• VC++ 两种动态调整控件位置的方法(CButton设置为Radio形式会出现错误)


     1         ((CButton*)GetDlgItem(IDC_CHECK1))->MoveWindow(182, cy - 232, 30, 20);
     2         ((CButton*)GetDlgItem(IDC_CHECK2))->MoveWindow(182, cy - 207, 30, 20);
     3         ((CButton*)GetDlgItem(IDC_CHECK3))->MoveWindow(182, cy - 182, 30, 20);
     4         ((CButton*)GetDlgItem(IDC_CHECK4))->MoveWindow(182, cy - 157, 30, 20);
     5         ((CButton*)GetDlgItem(IDC_CHECK5))->MoveWindow(182, cy - 132, 30, 20);
     6         ((CButton*)GetDlgItem(IDC_CHECK6))->MoveWindow(182, cy - 107, 30, 20);
     7 
     8         ((CStatic*)GetDlgItem(IDC_STATIC1))->SetWindowPos(NULL, 220, cy - 230, cx - 240, 22, SWP_NOZORDER);
     9         ((CStatic*)GetDlgItem(IDC_STATIC2))->SetWindowPos(NULL, 220, cy - 205, cx - 240, 22, SWP_NOZORDER);
    10         ((CStatic*)GetDlgItem(IDC_STATIC3))->SetWindowPos(NULL, 220, cy - 180, cx - 240, 22, SWP_NOZORDER);
    11         ((CStatic*)GetDlgItem(IDC_STATIC4))->SetWindowPos(NULL, 220, cy - 155, cx - 240, 22, SWP_NOZORDER);
    12         ((CStatic*)GetDlgItem(IDC_STATIC5))->SetWindowPos(NULL, 220, cy - 130, cx - 240, 22, SWP_NOZORDER);
    13         ((CStatic*)GetDlgItem(IDC_STATIC6))->SetWindowPos(NULL, 220, cy - 105, cx - 240, 22, SWP_NOZORDER);

    最近发现,使用第二种访求,也就是 SetWindowPos 方法时,会出现一个奇怪的问题 CButton如果转换成 Radio类型的控件时,会出现Group组的设置会出现一些错误。导致设置成Group为True的控件与其它的不成一组。

    另附:

    将CButton控件设置为Radio形式的方法是:

                ((CButton*)GetDlgItem(IDC_CHECK1))->ModifyStyle(BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON | WS_GROUP, 0);
                ((CButton*)GetDlgItem(IDC_CHECK1))->Invalidate();
                ((CButton*)GetDlgItem(IDC_CHECK2))->ModifyStyle(BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, 0);
                ((CButton*)GetDlgItem(IDC_CHECK2))->Invalidate();
                ((CButton*)GetDlgItem(IDC_CHECK3))->ModifyStyle(BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, 0);
                ((CButton*)GetDlgItem(IDC_CHECK3))->Invalidate();
                ((CButton*)GetDlgItem(IDC_CHECK4))->ModifyStyle(BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, 0);
                ((CButton*)GetDlgItem(IDC_CHECK4))->Invalidate();
                ((CButton*)GetDlgItem(IDC_CHECK5))->ModifyStyle(BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, 0);
                ((CButton*)GetDlgItem(IDC_CHECK5))->Invalidate();
                ((CButton*)GetDlgItem(IDC_CHECK6))->ModifyStyle(BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, 0);
                ((CButton*)GetDlgItem(IDC_CHECK6))->Invalidate();

    注意上面的 WS_GROUP 控件样式!

  • 相关阅读:
    String与StringBuffer常用API
    Java常用类库与工具课后习题3-5
    Java异常课后习题编程题
    Java异常课后习题简答题
    Visio的快速使用和功能理念
    Google免费新书-《构建安全&可靠的系统》
    名字的由来
    日志分析-利用grep,awk等文本处理工具完成(2019-4-9)
    关于docker--详解安装,常规操作,导入导出等(2017-3-29)
    Thinkphp5-0-X远程代码执行漏洞分析(2019-1-11)
  • 原文地址:https://www.cnblogs.com/lujin49/p/4911037.html
Copyright © 2020-2023  润新知