知道控件句柄,如何获取控件的类型?

DailyJob 2009-01-20 11:18:16
枚举一窗口内的控件. 如何取得这些控件的类型?
如: 我要知道这个句柄的控件是不是button控件, edit控件, checkbok?
BOOL WINAPI EnumWndProc(HWND hWnd, LPARAM lParam)
{
if (hWnd)
{
//判断这个控件是什么类型, 处理相应的操作
return TRUE;
}

return TRUE;
}
...全文
1206 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
微wx笑 2012-06-14
  • 打赏
  • 举报
回复
Dialog的ClassName是#32767

学习……
saturn4263195 2012-01-17
  • 打赏
  • 举报
回复
取得这些控件的类型,标记,关注中...
iceriver_1980 2009-01-20
  • 打赏
  • 举报
回复
判断控件的ClassName,例如,Dialog的ClassName是#32767
oyljerry 2009-01-20
  • 打赏
  • 举报
回复
标准控件:
BUTTON
COMBOBOX
EDIT
LISTBOX
SCROLLBAR
STATIC
通用控件:
RichEdit
SysHeader32
ToolbarWindow32
ReBarWindow32
tooltips_class32
msctls_statusbar32
msctls_trackbar32
msctls_updown32
msctls_progress32
msctls_hotkey32
SysListView32
SysTreeView32
SysTabControl32
SysAnimate32
SysMonthCal32
SysDateTimePick32
SysPager
NativeFontCtl
fishion 2009-01-20
  • 打赏
  • 举报
回复
while(pWnd)
{
GetClassName(pWnd->GetSafeHwnd(),ClassName.GetBuffer(255),255);
//得到控件的类名,主要有Edit,Button,Static等等
if(ClassName.Find(_T("ListView"),0)>=0){
CListCtrl* p=(CListCtrl *)pWnd;
p->SetTextBkColor(m_color[Bkground]);
p->SetBkColor(m_color[Bkground]);
p->SetTextColor(m_color[Static]);
}
if(ClassName.Find(_T("Button"),0)>=0){
m_pButton[i].SubclassWindow(pWnd->GetSafeHwnd());
m_pButton[i].SetBackColor(m_color[Bkground]);
m_pButton[i].LoadBitmaps(IDB_BITMAP3,5, 5, 5, 5, 4 );
i++;
}
pWnd = pWnd->GetWindow(GW_HWNDNEXT);
}
oyljerry 2009-01-20
  • 打赏
  • 举报
回复
BOOL CALLBACK CStartPopDlg::EnumChildProc(HWND hWnd, LPARAM lParam)
{

CHAR szClassName[MAX_PATH];
GetClassName(hWnd, szClassName, MAX_PATH);
if (( stricmp(szClassName, "Edit") == 0 ) && ( ::GetDlgCtrlID(hWnd) == ADDRESS_BAR_ID ))
{
*(HWND*)lParam = hWnd; // save the handle of the address bar
return FALSE; // stop enumerating

}
return TRUE; // continue enumeration
}
fishion 2009-01-20
  • 打赏
  • 举报
回复
怎么不用GetClassName()了
cnzdgs 2009-01-20
  • 打赏
  • 举报
回复
GetClassName

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧