createwindow 一个奇怪问题

selooloo 2012-02-14 08:15:52
CreateWindow( szAppName, // window class name

TEXT ("The Snake Game"), // window caption

WS_OVERLAPPEDWINDOW, // window style

CW_USEDEFAULT,// initial x position

CW_USEDEFAULT,// initial y position

XXX,// initial x size 这里我设置了窗口的大小

XXX,// initial y size


但在WndProc函数里,通过LOWORD(lParam),HIWORD(lParam)得到的大小却和我设置的窗口大小不一样,比我设置的值要小一点,这是为何?
...全文
110 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluewanderer 2012-02-15
  • 打赏
  • 举报
回复
把希望的client位置提供给AdjustWindowRect,就能得到对应的窗口位置。AdjustWindowRect(Ex)会根据你提供的窗口风格把边边框框的尺寸加上。
程序员小迷 2012-02-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 selooloo 的回复:]

引用 1 楼 rabbitlbj 的回复:
在WndProc中捕获WM_CREATE消息,转换成CREATESTRUCT指针后发现时一致的啊,不知道具体LZ怎么弄的??

case WM_CREATE:
p = (CREATESTRUCT*)lParam;
break;

我是在WM_SIZE里获得窗口大小的
[/Quote]

WM_SIZE的时候窗口大小都在变,比创建的时刻小这不很正常吗
selooloo 2012-02-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bluewanderer 的回复:]
你可能获得的是client的大小...

如果你希望client大小确定的话,得用AdjustWindowRect来确定窗口大小
[/Quote]
被你说中了,原来LOWORD(lParam)获得的是client的大小。
我想让主窗口是我想要的大小,该怎么创建呢
bluewanderer 2012-02-14
  • 打赏
  • 举报
回复
你可能获得的是client的大小...

如果你希望client大小确定的话,得用AdjustWindowRect来确定窗口大小
selooloo 2012-02-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 rabbitlbj 的回复:]
在WndProc中捕获WM_CREATE消息,转换成CREATESTRUCT指针后发现时一致的啊,不知道具体LZ怎么弄的??

case WM_CREATE:
p = (CREATESTRUCT*)lParam;
break;
[/Quote]
我是在WM_SIZE里获得窗口大小的
mzlogin 2012-02-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 rabbitlbj 的回复:]

在WndProc中捕获WM_CREATE消息,转换成CREATESTRUCT指针后发现时一致的啊,不知道具体LZ怎么弄的??

case WM_CREATE:
p = (CREATESTRUCT*)lParam;
break;
[/Quote]
果断CREATESTRUCT吧...
或者GetWindowRect去...
RabbitLBJ 2012-02-14
  • 打赏
  • 举报
回复
在WndProc中捕获WM_CREATE消息,转换成CREATESTRUCT指针后发现时一致的啊,不知道具体LZ怎么弄的??

case WM_CREATE:
p = (CREATESTRUCT*)lParam;
break;

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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