MFC Checkbox 使用方法

 

 

请问MFC里CHECKBOX用法(2009-02-05 13:49:50)

勾选时...做某种算法
不勾选时 做另一种算法

if ( BST_CHECKED == IsDlgButtonChecked( IDC_CHECK1 ) )
{
// 勾选
}
else
{
}

IDC_CHECK1是CheckBox控件。

 

函数功能:该函数可以确定某个按钮控制是否有选中标志,或者三态按钮控制是否为灰色的、选中的、或两者都不是。

  函数原型:UINT IsDlgButtonChecked(HWND hDlg,Int nlDBUtton);
  参数:
  hDlg:指向包含按钮控制的对话框。
  nkDButtom:指定按钮控制的整型标识符。
  返回值:使用BS_AUTOCHECKBOX、BS_AUTORADIOBUTTON、BS_AUTO3STATE、BS_CHECKBOX、BS_RADIOBUTION或BS_3STATE样式创建的按钮的返回值可以是如下值之一:
  BST_CHECKED:表示按钮被选中。
  BST_INDETERMINATE:表示按钮是灰色的,即为不确定状态(只有具有BS_3STATE或BS_AUTO3STATE样式的按钮才使用该值)。

  BST_UNCHECKED:表示该按钮未选中(unckecked)。如果该按钮用其他任何样式,那么返回值为零。

也可以为该控件添加一个控件类型的BOOL值变量如:BOOL m_delete;

void calcuArea::DoDataExchange (CDataExchange *pDX) {
 CAcUiDialog::DoDataExchange (pDX) ;
 DDX_Check(pDX, IDC_CHECK1, m_delete);
}

 

也可以对变量进行get或者set之类的操作来设置或者判断复选框的选择状态。

 

得到复选框状态的函数:CButton* pBtn = (CButton*)GetDlgItem(IDC_CHECK);

           int state = pBtnNONE->GetCheck();

           当state == 0时表示该复选框没有被选中;

           当state == 1时表示该复选框被选中设置复选框状态的函数:CButton* pBtn = (CButton*)GetDlgItem(IDC_CHECK);

           pBtnNONE->SetCheck(1);

           SetCheck(1)表示设置复选框为“选中”状态;

           SetCheck(0)表示设置复选框为“未选中”状态;

 

测试发现还需要一句话才能把值传递过来。

 

UpdateData(false)是将变量的值传到控件.

UpdateData(TRUE)是从控件中取值到关联的变量

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在MFC中,当我们点击一个复选框时,复选框的状态会改变,并且复选框会自动重绘以反映新的状态。 复选框的重绘可以通过以下几个步骤来完成: 1. 响应复选框的点击事件:我们可以在应用程序中定义一个响应函数来处理复选框的点击事件。在响应函数中,我们可以检查复选框的当前状态,并做相应的处理。 2. 修改复选框的状态:在响应函数中,我们可以使用GetCheck函数获取复选框的当前状态,并使用SetCheck函数来设置新的状态。根据需要,我们可以将复选框设置为选中或未选中状态。 3. 进行重绘:当我们设置了新的复选框状态后,MFC会自动处理复选框的重绘。内部机制会检测到状态的改变,并调用复选框的重绘函数来更新界面上的复选框显示。 对于自定义的复选框,我们还可以使用自定义的绘制函数来实现复选框的重绘。我们可以在绘制函数中根据复选框的状态绘制不同的图标或颜色,以展示不同的复选框状态。 总之,MFC中的复选框重绘是一个自动处理的过程,我们只需要通过响应函数来修改复选框的状态即可。如果需要自定义复选框的外观,我们可以重写绘制函数来实现。 ### 回答2: MFC(Microsoft Foundation Classes)是一个提供了基于Windows操作系统的编程接口的框架。在MFC中,Checkbox是一种常用的控件之一,用于让用户选择一个或多个选项。 重绘(Redraw)是指在控件的显示区域需要更新时,重新绘制控件的外观。对于Checkbox控件,可能会出现需要重绘的情况,如鼠标点击选中或取消选中、状态改变等操作时。 在MFC中,可以通过重写Checkbox的OnPaint函数来实现自定义的重绘。通过重写OnPaint函数,可以控制Checkbox控件的绘制过程,实现自定义的外观效果。 首先,在对应的Checkbox类中添加OnPaint函数的重写,然后在重写的函数中实现自定义的绘制逻辑。可以使用CDC(Device Context)类的相关函数绘制Checkbox的外观,如绘制边框、背景颜色和勾选标记等。也可以使用位图资源来实现绘制,具体方法可以参考MFC的相关文档和示例代码。 需要注意的是,在重绘Checkbox控件时,可以通过调用Invalidate函数来触发重绘操作。在需要重绘的时候,可以调用Invalidate函数来告知系统需要重新绘制控件。 总之,通过重写Checkbox的OnPaint函数,并在函数中实现自定义的绘制逻辑,可以实现Checkbox的重绘操作。在需要重绘的时候,可以通过调用Invalidate函数来触发重绘操作。这样可以实现自定义的Checkbox外观效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值