VC遍历窗体控件的实现

最近在写控制台,在设计界面按钮风格时不想通过每个按钮的ID来获取其句柄,而是通过遍历窗体所有控件,然后判断其控件类型进而来实现。

          代码如下:

      // 遍历得到页面中的所有Button控件,依次设定其样式和颜色
    CWnd* pWnd = GetWindow(GW_CHILD);   
    char cClassName[255]={0};
    while(pWnd) 
   {   
        GetClassName(pWnd->GetSafeHwnd(),cClassName,255);//得到控件的类名,主要有Edit,Button,Static等等
        if(strcmp(cClassName,"Button") == 0) //是Button控件
        {
            CXTButton *pBtn = (CXTButton*) pWnd;
            pBtn->SetXButtonStyle(BS_XT_XPFLAT);
            pBtn->SetColorFace(BUTTON_BKCOLOR); //按钮背景色
        }
        pWnd = pWnd->GetWindow(GW_HWNDNEXT);
     }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在VC++中使用ListCtrl实现带有复选框的功能,可以按照以下步骤进行操作: 1. 在资源编辑器中添加一个List Control件到你的对话框或口。 2. 在代码中获取List Control件的指针,可以使用类似以下方式: ```cpp CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST_CTRL_ID); ``` 这里的 `IDC_LIST_CTRL_ID` 是你在资源编辑器中给List Control件指定的ID。 3. 设置List Control件的风格,使其支持复选框。可以在对话框初始化的时候添加如下代码: ```cpp pListCtrl->SetExtendedStyle(pListCtrl->GetExtendedStyle() | LVS_EX_CHECKBOXES); ``` 4. 添加列表项到List Control件中,每个列表项都对应一个复选框。可以使用如下代码: ```cpp int nItemIndex = pListCtrl->InsertItem(0, _T("Item Text")); pListCtrl->SetItemState(nItemIndex, LVIS_STATEIMAGEMASK, LVIS_STATEIMAGEMASK); ``` 这里的 `Item Text` 是要显示的列表项文本。 5. 处理列表项的选择状态变化事件。可以使用如下代码: ```cpp void CYourDialog::OnNMClickListCtrl(NMHDR* pNMHDR, LRESULT* pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); if ((pNMItemActivate->uChanged & LVIF_STATE) && (pNMItemActivate->uNewState & LVIS_STATEIMAGEMASK)) { // 复选框的选择状态发生了变化 int nItemIndex = pNMItemActivate->iItem; BOOL bChecked = (pListCtrl->GetCheck(nItemIndex) == TRUE); // 处理复选框状态变化的逻辑 } *pResult = 0; } ``` 这里的 `CYourDialog` 是你的对话框类名,`OnNMClickListCtrl` 是列表件的点击事件处理函数。 通过以上步骤,你就可以实现VC++中使用ListCtrl实现带有复选框的功能了。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值