VC++ win32 application里如何建一个子窗口
3个回答
展开全部
从WINDOWS系统的窗口机制上来说需要至少三步:
1、注册窗口类
2、利用CreateWindow/CreateWindowEx() API 创建窗口
3、实现窗口类中的定义的消息事件的回调函数。
如果是创建已经注册好的窗口(比如系统提供的一些窗口类型,编辑框、树形列表等)无须注册窗口类,直接通过CreateWindowEx() 进行创建,也无须处理窗口的事件消息。 如果需要自己处理这些消息,那么就是所谓的子类化或超类化的技术概念了。
如果是实现对话框,则比较简单。 对话框是一个特殊的窗口类型,需要现在资源中定义一个对话框模板,然后通过DialogBoxParam/DialogBoxIndirectParam()等API直接创建就可以了。
从实现上来说:
1、SDK 编程, 那么需要按需求手动编码,依据需要处理这几个步骤
2、基于ATL框架, 直接创建一个基于CWindowImpl<> 模板类,继承实现一个类实例来处理消息链。 然后在需要的地方直接创建一个类实例,调用类实例的Create() 方法就成。
3、基于MFC框架,直接创建一个基于CWnd/CDialog类,继承实现类实例,来处理消息链。原理同ATL类似,无非是实现方式不大一样。
基于ATL/MFC框架都可以通过VS的向导进行创建,原理是一样的,无非就是省却大部分手动敲码的过程。
1、注册窗口类
2、利用CreateWindow/CreateWindowEx() API 创建窗口
3、实现窗口类中的定义的消息事件的回调函数。
如果是创建已经注册好的窗口(比如系统提供的一些窗口类型,编辑框、树形列表等)无须注册窗口类,直接通过CreateWindowEx() 进行创建,也无须处理窗口的事件消息。 如果需要自己处理这些消息,那么就是所谓的子类化或超类化的技术概念了。
如果是实现对话框,则比较简单。 对话框是一个特殊的窗口类型,需要现在资源中定义一个对话框模板,然后通过DialogBoxParam/DialogBoxIndirectParam()等API直接创建就可以了。
从实现上来说:
1、SDK 编程, 那么需要按需求手动编码,依据需要处理这几个步骤
2、基于ATL框架, 直接创建一个基于CWindowImpl<> 模板类,继承实现一个类实例来处理消息链。 然后在需要的地方直接创建一个类实例,调用类实例的Create() 方法就成。
3、基于MFC框架,直接创建一个基于CWnd/CDialog类,继承实现类实例,来处理消息链。原理同ATL类似,无非是实现方式不大一样。
基于ATL/MFC框架都可以通过VS的向导进行创建,原理是一样的,无非就是省却大部分手动敲码的过程。
展开全部
CreateWindow可以创建主窗口之外的窗口,具体的函数调用见MSDN的示例程序。。
窗口分主窗口和子窗口。我觉得你是想学Win32编程。
所以推荐个专门讨论MFC/Win32的QQ群给你:139892312。
群规严格,不是真心想学就不要加了。
窗口分主窗口和子窗口。我觉得你是想学Win32编程。
所以推荐个专门讨论MFC/Win32的QQ群给你:139892312。
群规严格,不是真心想学就不要加了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CreateWindow这个函数就行了,详细的使用方法百度一下或者看MSDN上都有。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询