关于控件注册类名的问题

逸学堂 2006-09-29 03:23:53
关于控件注册类名,一般操作时我们不要设置,按钮控件类的注册控件类名为"Button"
列表控件的注册类名为"ListBox",等等还有其他的控件,通过spy++可以看到

我现在的问题是,我想更改这个控件的注册名称,请问诸位大虾如何实现?

备注:对话框的注册类名如果我们不指定
默认为"#32770"我现在可以实现对对话框的注册类名修改,方法如下
在dialog的构造函数中,重新注册类名
WNDCLASSEX ws={sizeof(WNDCLASSEX)};
GetClassInfoEx(NULL,_T("#32770"),&ws);
ws.lpszClassName = _T("ugg");
int i = RegisterClassEx(&ws);
并且在资源文件内,对话框的ID内容中加上CLASS "ugg"
IDD_TESTDIALOG_DIALOG DIALOGEX 0, 0, 320, 200
CLASS "ugg" // 这里

但是使用控件时,不能使用这种方式,因为控件项是不允许添加CLASS "ugg"之类的形式
控件类和CDialog类都是从CWnd类中继承来的,而CWnd类负责注册类,应该是可以修改的.
这是我目前的一点认识.
...全文
418 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxshzf 2006-10-24
  • 打赏
  • 举报
回复
study
逸学堂 2006-10-07
  • 打赏
  • 举报
回复
难道就没有人给个方法
sms88 2006-09-30
  • 打赏
  • 举报
回复
逸学堂 2006-09-29
  • 打赏
  • 举报
回复
做一个皮肤freamework,里使用hook技术
hook只能等到一个控件的句柄,windows 提高一个api可以实现
由句柄得到邦定在句柄上的类的名
当我可以修改控件注册类名时,我就可以在运行时可得到类,从而可以
决定对控件采用哪种形式的绘制
sms88 2006-09-29
  • 打赏
  • 举报
回复
关注
zhucde 2006-09-29
  • 打赏
  • 举报
回复
问一下,这样的目的是为了什么?
逸学堂 2006-09-29
  • 打赏
  • 举报
回复
TO:skt01(skt001)
这种方法,对控件并不起效,对窗口可以应用,并且此时也要把窗口设置
CLASS "WndHelp"
skt01 2006-09-29
  • 打赏
  • 举报
回复
你随便写个窗口类都是可以注册的,可以在构造函数中:
WNDCLASS wndcls;
HINSTANCE hInst= AfxGetInstanceHandle();
if(!(::GetClassInfo(hInst,"WndHelp",&wndcls)))
{
wndcls.style=CS_SAVEBITS;
wndcls.lpfnWndProc=::DefWindowProc;
wndcls.cbClsExtra=wndcls.cbWndExtra=0;
wndcls.hInstance=hInst;
wndcls.hIcon=NULL;
wndcls.hCursor=AfxGetApp()->LoadStandardCursor(IDC_ARROW);
wndcls.hbrBackground=(HBRUSH)(COLOR_INFOBK + 1);
wndcls.lpszMenuName=NULL;
wndcls.lpszClassName="WndHelp";
if(!AfxRegisterClass(&wndcls))AfxThrowResourceException();
}

15,979

社区成员

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

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