win32 api 窗口居中

本文提供了一段用于使C/C++程序窗口居中的代码,并修正了窗口大小异常扩大的问题。通过调整窗口位置和尺寸,确保窗口既居中又保持原始大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在网上搜是窗口居中显示的方法搜到了浪浪仔win32 C/C++程序窗口居中,用了之后发现虽然窗口居中了,但是比原来变大了许多,后来发现是SetWindowPos时窗口的长宽设置错了,在此记录,并给需要的人。

void CenterWindow(HWND hWnd)
{
    int scrWidth, scrHeight;
    RECT rect;
    //获得屏幕尺寸
    scrWidth = GetSystemMetrics(SM_CXSCREEN);
    scrHeight = GetSystemMetrics(SM_CYSCREEN);
    //取得窗口尺寸
    GetWindowRect(hWnd, &rect);
    //重新设置rect里的值  
    long width = rect.right - rect.left;
    long height = rect.bottom - rect.top;
    rect.left = (scrWidth - width) / 2;
    rect.top = (scrHeight - height) / 2;

    //移动窗口到指定的位置
    SetWindowPos(hWnd, HWND_TOP, rect.left, rect.top, width, height, SWP_NOSIZE | SWP_NOZORDER);
}

另外,对话框有center属性可以设置为true,可以让对话框居中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值