在mfc中控件如CButton,CStatic创建之后能改变大小或者移动位置吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在mfc中控件如CButton,CStatic创建之后能改变大小或者移动位置吗相关的知识,希望对你有一定的参考价值。

如果是静态创建的,那么有两种方法
1,SetWindowPos
2,MoveWindow
如果是动态的那就用
OnPaint
参考技术A 2 methods。
1,SetWindowPos
2,MoveWindow
参考技术B 有个在改变控件位置的函数 参考技术C MoveWindow可以实现你说的功能的,你查查吧。结对可以的。追问

在mfc中系统的消息处理函数都是虚函数吗?为什么在派生自CView的类复写OnPaint函数,复写的OnPaint函数不会被执行?

追答

是虚函数,如果不是的话怎么可以随时增加呢,内部mfc框架已经实现基本功能,如果你想实现更多功能就增加消息处理。
第2个问题不是很清楚你的遇到的问题。

MFC checkbox使用方法

MFC中复选框checkbox控件,至少有三种方法对其进行操作,他们是利用Cbutton成员函数GetCheck和SetCheck,第二种是利用CWnd成员函数IsDlgButtonChecked,最后就是把checkbox复选框控件与BOOL型变量相关联。

一、用CButton成员函数
MFC中复选框CheckBox的基类是CButton。那么就可以用GetDlgItem来获取复选框的指针,再用Cbutton成员函数GetCheck和SetCheck来获取和设置选中状态。
得到复选框状态的函数:
CButton* pBtn = (CButton*)GetDlgItem(IDC_CHECK_MIXI);
int state = pBtn->GetCheck();
当state == 0时表示该复选框没有被选中;
当state == 1时表示该复选框被选中;
当state == 2时表示不确定(applies only if the button has the BS_3STATE or BS_AUTO3STATE style);
设置复选框状态的函数:
CButton* pBtn = (CButton*)GetDlgItem(IDC_CHECK_MIXI);
pBtn->SetCheck(1);
SetCheck(1)表示设置复选框为“选中”状态;
SetCheck(0)表示设置复选框为“未选中”状态;
SetCheck(2)设置复选框为不确定状态(This value can be used only if the button has the BS_3STATE or BS_AUTO3STATE style.);
二、用CWnd成员函数
CButton是从CWnd继承来,那么就可以用IsDlgButtonChecked来获取和设置check box的状态。另外MSDN上海说明IsDlgButtonChecked还可以用于单选框Radio button。
UINT IsDlgButtonChecked( int nIDButton ) const;
nIDButton为控件ID
函数功能:
该函数可以确定某个按钮控制是否有选中标志,或者三态按钮控制是否为灰色的、选中的、或两者都不是。
返回值:
使用BS_AUTOCHECKBOX、BS_AUTORADIOBUTTON、BS_AUTO3STATE、BS_CHECKBOX、BS_RADIOBUTION或BS_3STATE样式创建的按钮的返回值可以是如下值之一:
BST_CHECKED:表示按钮被选中。
BST_INDETERMINATE:表示按钮是灰色的,即为不确定状态(只有具有BS_3STATE或BS_AUTO3STATE样式的按钮才使用该值)。
BST_UNCHECKED:表示该按钮未选中(unckecked)。如果该按钮用其他任何样式,那么返回值为零。
if ( BST_CHECKED == IsDlgButtonChecked( IDC_CHECK1 ) )

//IDC_CHECK1是CheckBox控件。
//check box 被选中执行相关动作

三、关联BOOL型成员变量
复选框CheckBox控件添加一个控件类型的BOOL值变量如:BOOL m_delete;
void calcuArea::DoDataExchange (CDataExchange *pDX)

//此代码利用类向导可以自动生成
CAcUiDialog::DoDataExchange (pDX) ;
DDX_Check(pDX, IDC_CHECK1, m_delete);

以上是关于在mfc中控件如CButton,CStatic创建之后能改变大小或者移动位置吗的主要内容,如果未能解决你的问题,请参考以下文章

在 MFC 应用程序中动态创建控件

猎豹MFC--图片控件CStatic和动画控件CAnimateCtrl

在MFC中:静态文本类;按纽类;编辑框类;滚动条类;列表框类;组合框类等所对应的类名以及其功能

MFC Picture控件加载图片

CToolTipCtrl 未显示

MFC 中CBUTTON DrawItem函数为啥为空?