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 控件样式!

时间: 2024-08-28 15:33:06

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

android 动态改变控件位置和大小 .

动态改变控件位置的方法: setPadding()的方法更改布局位置. 如我要把Imageview下移200px: ImageView.setPadding( ImageView.getPaddingLeft(),  ImageView.getPaddingTop()+200, ImageView.getPaddingRight(),  ImageView.getPaddingBottom()); 动态改变控件大小的方法: 1.声明控件参数获取对象 LayoutParams lp: 2.获取控件

iOS masonry动态约束控件位置

#import "FourViewController.h" #import "View+MASAdditions.h" #import "FiveViewControllerr.h" #define WS(weakSelf)  __weak __typeof(&*self)weakSelf = self; #define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width stati

两种动态加载JavaScript文件的方法

两种动态加载JavaScript文件的方法 第一种便是利用ajax方式,第二种是,动静创建一个script标签,配置其src属性,经过把script标签拔出到页面head来加载js,感乐趣的网友可以看下 动态加载script到页面大约有俩方法 第一种便是利用ajax方式,把script文件代码从背景加载到前台,而后对加载到的内容经过eval()实施代码.第二种是,动静创建一个script标签,配置其src属性,经过把script标签插入到页面head来加载js,相当于正在head中写了一个<sc

VC++ 跟随父窗口调整控件大小

VC++之根据对话框大小调整控件大小 1.在对话框类中加入成员变量CRect m_rect;用于保存对话框大小变化前的大小: 2.在对话框的OnInitDialog()函数中获取对话框创建时的大小:GetClientRect(&m_rect); 3.在WM_SIZE的响应函数OnSize()中加入以下代码: 1:private: CRect m_rect; 2:GetClientRect(&m_rect); 3: void CButtonDlg::modify(CWnd* pWnd,int

WPF编程,通过Double Animation动态旋转控件的一种方法。

原文:WPF编程,通过Double Animation动态旋转控件的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/details/87259162 ? ?1.控件旋转,可直接调用.需要将控件的名称,旋转的角度,时间等参数传进去. /// <summary> /// 控件绕中心旋转动画 /// </summary> /// <param name="element"

WPF编程,通过Double Animation动态缩放控件的一种方法。

原文:WPF编程,通过Double Animation动态缩放控件的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/details/87260143 ? ?1.控件缩放,可直接调用.需要将控件的名称,缩放的位数,时间等参数传进去. /// <summary> /// 控件绕中心缩放动画 /// </summary> /// <param name="element"

PyQt5 中当窗口大小改变时,如何去调整控件的位置以适应窗口大小改变的思考

from PyQt5.Qt import * #刚开始学习可以这样一下导入 import sys,time class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QLineEdit 输出模式的案例") self.resize(400,400) self.set_ui() self.i = 1 def set_ui(self): pass def resizeEvent(sel

WPF编程,通过Double Animation动态更改控件属性的一种方法。

原文:WPF编程,通过Double Animation动态更改控件属性的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/details/87251422 DoubleAnimation类指定起始值(From="30").终点值(To="300").时间(Duration="3"),以及动画结束应该如何(FillBehavior="Stop&qu

WPF编程,通过【帧】动态更改控件属性的一种方法。

原文:WPF编程,通过[帧]动态更改控件属性的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/details/87249998 WPF提供了一种基于帧的动画实现方式,由CompositionTarget类来完成. WPF会在每次界面刷新时调用该回调函数. CompositionTarget的刷新率与窗体保持一致,因此很难人工控制动画的快慢. ?1.前台 <Grid> <Grid.RowDefin