VC中动态创建窗口的问题:Create() or CreateEx()

easydone 2000-04-27 08:51:00
我第一次动态的创建窗口,用了CWnd::Create(……)函数,但发现里面的参数太多、太复杂(主要是本人太弱),又牵扯很多的问题。后来发现创建窗口还有CreateEx(……),更是莫不着头脑。书中相关的内容很少,不知哪位大虾愿意不吝笔墨,为我指点迷津,小弟万分感谢!!!
...全文
2613 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
JJONY 2000-04-27
  • 打赏
  • 举报
回复 1
这一个嘛,你可以看一看msdn不就搞掂了吗?我给你说一说原形参数的用法吧。
Create( LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CCreateContext* pContext = NULL);
其中:
lpszClassName是窗口类的字符串名字(什么是窗口类?你就自己看一些VC入门的书就有说明了),可以用AfxRegisterWndClass(0)返回值来设置本参数,如果AfxRegisterWndClass是默认参数的话,那你的窗口的客户区就是透明的。
lpszWindowName的这个参数就不用说啦。
dwStyle是所创建窗口的样式,注意的是create是不能创建WS_POPUP类型的窗口。
rect也不用说了吧
pParentWnd是本窗口的父窗口,也就说明本窗口的活动范围只能在父窗口里。
ID就体本程序的一个ID值。
pContext一般为NULL,因为Create的执行是会导致本窗口收到WM_CREATE消息,即调用OnCreate函数,pContext可以传递一些你所传递的数据。

至于CreateEx它的区别在于它能创建WS_POPUP样式的窗口和有扩展样式。
OK?几十分真不好赚。

929 2000-04-27
  • 打赏
  • 举报
回复
建立窗口要给出所需窗口听窗口类,窗口标题,窗口风格,大小,父窗口,窗口关联菜单、应用程序实例句柄、以及窗口建立结构指针。我想这需要对WINDOWS的窗口建立有清楚的了解,几句话是说不清的。下面是生成一个EDIT类窗口的例子。
hwndEdit = CreateWindow(
"EDIT", /* predefined class */
NULL, /* no window title */
WS_CHILD and WS_VISIBLE and WS_VSCROLL and
ES_LEFT and ES_MULTILINE and ES_AUTOVSCROLL,
0, 0, 0, 0, /* set size in WM_SIZE message */
hwnd, /* parent window */

(HMENU) ID_EDITCHILD, /* edit control ID */
(HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),
NULL); /* pointer not needed */

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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