create 和 SubClassDlgItem有什么区别

真的李小龙 2006-04-18 09:29:07
在一个dialog中,添加一个控件,比如CEdit好了。
如果用SubClassDlgItem, 当鼠标移动到控件的边界时会响应HTBORDER,从而可以用来设置光标类型。
而使用Create时,移动鼠标,只能得到HTCLIENT。而不能得到HTBORDER。
所以,用SubClassDlgItem可以用来拖拉控件,改变控件的大小。
而Create生成的就不能有这些功能。

为什么?

是不是Create中参数设置不对,还是本来就有区别。
那,具体真样作可以用Create生成一个可以得到HTBORDER(在OnSetCursor中)?
...全文
223 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
iswjh 2006-04-19
  • 打赏
  • 举报
回复
子类化是当标准ctrl不满足你的需要时,用来重定义ctrl的外观、行为等。
你所谓的动态创建是不是指在代码中使用Create(Ex)函数创建的ctrl,这和在对话框设计器中放的ctrl是一样的。本质上都是调用win32API CreateWindow(Ex)来创建的。

子类化和创建根本就不是一个概念。通常的处理步骤是:
1、创建ctrl
2、子类化ctrl
真的李小龙 2006-04-19
  • 打赏
  • 举报
回复
那子类化和动态生成有什么区别呢?
区别又在那里呢,怎么作可以让动态创建变得和子类化一样呢?
ripyu 2006-04-19
  • 打赏
  • 举报
回复
子类化了

15,978

社区成员

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

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