鱼C论坛

 找回密码
 立即注册
查看: 3113|回复: 2

SetWindowPos函数更改窗口的问题

[复制链接]
发表于 2014-8-17 17:24:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
SetWindowPos函数  用于更改窗口的位置 大小以及在z order的顺序


我使用此函数  最后一个参数设置为SWP_NOMOVE|SWP_NOZORDER
意为忽略z order和窗口位置(保持原值),只修改窗口大小
然而运行后窗口仍保持CreateWindow函数的大小设置


我的目的是  CreateWindow设置的窗口大小不包含非客户区
比如设置了300,300那么大   本来这个大小是整个窗口(包括非客户区)的尺寸  但我重设窗口大小
最后的结果是300,300只包括客户区的大小   而整个窗口(包括非客户区)的尺寸大于300,300

变量名都是和用意一样的了
下面是源代码  (局部),求给出问题所在

        hwnd = CreateWindow(szAppName,
                TEXT("random"),
                WS_OVERLAPPEDWINDOW,
                300,
                300,
                300,
                300,
                NULL,
                NULL,
                hInstance,
                NULL);

        ShowWindow(hwnd,iCmdShow);
        UpdateWindow(hwnd);

        while(GetMessage(&msg,NULL,0,0))
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }
        return msg.wParam;
}

LRESULT CALLBACK WndPro(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
        HDC hdc;
        PAINTSTRUCT ps;
        RECT rect,WinRect,ClientRect;
        int strMath,iHighGap,iWidthGap;
        switch(message)
        {
        case WM_CREATE:
                GetWindowRect(hwnd,&WinRect);
                GetClientRect(hwnd,&ClientRect);
                iHighGap = (WinRect.bottom - WinRect.top) - (ClientRect.bottom - ClientRect.top);
                iWidthGap = (WinRect.right - WinRect.left) - (ClientRect.right - ClientRect.left);
                SetWindowPos(hwnd,NULL,0,0,
                        ClientRect.right + iWidthGap,ClientRect.bottom + iHighGap,SWP_NOMOVE|SWP_NOZORDER);
                return 0;

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-25 07:35:15 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-15 04:16:57 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 15:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表