在mfc编程当中 如果是动态创建一个窗口 也就是不通过既有的对话框资源创建窗口 我需要创建一个带有标题栏的 标题栏左侧,以及任务栏左侧有图标的,标题栏右侧有最小化和关闭按钮的窗口 应当怎么创建?
是不是要先注册窗口类,还要添加窗口过程函数?
关于mfc动态创建一个窗口
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
4条回答 默认 最新
阿里嘎多学长 2025-10-26 13:36关注阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
动态创建MFC窗口
你需要创建一个
CWnd对象,并使用CreateEx或Create方法来创建窗口。下面是一个示例:CWnd* pWnd = new CWnd; pWnd->CreateEx(0, WS_OVERLAPPEDWINDOW, _T("标题"), CRect(100, 100, 300, 200), pParentWnd, ID_ANY);在上面的代码中:
WS_OVERLAPPEDWINDOW是窗口样式,表示创建一个带有标题栏、任务栏和最小化和关闭按钮的窗口。_T("标题")是窗口标题。CRect(100, 100, 300, 200)是窗口的初始位置和大小。pParentWnd是父窗口的指针,如果没有父窗口,可以传递NULL。ID_ANY是窗口的 ID,可以传递一个具体的 ID。
添加图标
要添加图标,可以使用
SetIcon方法:pWnd->SetIcon(AfxGetApp()->LoadIcon(IDI_ICON1));在上面的代码中:
IDI_ICON1是图标的 ID,可以替换为你自己的图标 ID。
注意
- 请确保在
CWnd对象被销毁之前释放它的内存。 - 如果你需要处理窗口的消息,请重载
OnCreate和OnDestroy方法。
希望这个示例能够帮助你解决问题!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报