在窗口中,用CWnd *pWndChild = GetWindow(GW_CHILD);得到控件指针后,如何判断其类型啊?是按钮还是编辑框或其它?

sunboy_hb 2003-11-11 11:16:09
?
...全文
1196 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
AkiraChing 2003-11-18
  • 打赏
  • 举报
回复
CString strClass;
::GetClassName(GetDlgItem(IDC_LIST1)->m_hWnd,strClass.GetBufferSetLength(255),255);
strClass.ReleaseBuffer();
AfxMessageBox(strClass);
yuan8708 2003-11-17
  • 打赏
  • 举报
回复
if( pWnd->GetStyle()& BS_GROUPBOX )
{
//是Group Box
}
if( pWnd->GetStyle()& BS_PUSHBUTTON )
{
//是BUTTON
}
sunboy_hb 2003-11-17
  • 打赏
  • 举报
回复
组合框Group Box和按钮BUTTON的类名都是Button, 如何区分啊?
wuxfBrave 2003-11-11
  • 打赏
  • 举报
回复
同意楼上

EDIT
BUTTON

可以用spy++查看窗口的类名
zhang_zhibin 2003-11-11
  • 打赏
  • 举报
回复
可以获得这个窗口的类名的,比如“EDIT”什么的,你可以试试,函数是:GetClassName.
ablefirst 2003-11-11
  • 打赏
  • 举报
回复
no java.
GetClassName Function

--------------------------------------------------------------------------------

The GetClassName function retrieves the name of the class to which the specified window belongs.

Syntax

int GetClassName( HWND hWnd,
LPTSTR lpClassName,
int nMaxCount
);
Parameters

sunboy_hb 2003-11-11
  • 打赏
  • 举报
回复
组合框Group Box 的类名也是Button, 如何区分它和按钮啊?
msgsnd 2003-11-11
  • 打赏
  • 举报
回复
void CTttDlg::test()
{
CButton c;
if(c.IsKindOf( RUNTIME_CLASS( CButton )))
{
AfxMessageBox("ok");
}

}
GetClassName好像是java的吧。
会思考的草 2003-11-11
  • 打赏
  • 举报
回复
用RTTI比较正统一些吧。示例:
if(pWnd->IsKindOf(RUNTIME_CLASS(CView)))
{
return COleDropTarget::OnDrop(pWnd, pDataObject, dropEffect, point);
}
sunboy_hb 2003-11-11
  • 打赏
  • 举报
回复
怎么用啊?
flyelf 2003-11-11
  • 打赏
  • 举报
回复
IsKindOf
sunboy_hb 2003-11-11
  • 打赏
  • 举报
回复
Group Box 的类名是Button, 如何区分它和按钮啊?

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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