解决windows api的子窗口大小设置问题 (以及windows API 设置窗口 c#调用 panel控件)

仅作为查找记录,大佬请跳过。


出现图像底部不在penal里的情况:

在这里插入图片描述
可能是——

MoveWindow(figure1, 0, 0, panel1.Width + 20, panel1.Height + 40, true);

——的原因

——————————————————————————————————
将其改为

MoveWindow(figure1, 0, 0, panel1.Width + 20, panel1.Height - 40, true);

图像下面便可以显示了:

在这里插入图片描述
但一放大主窗体,又看不到图像的x坐标了。。
在这里插入图片描述
在这里插入图片描述

关于 但一放大主窗体,又看不到图像的x坐标了。。 的解决:

后来发现代码里还有一项是设置窗体的功能——即对主窗体操作后,会改变嵌入的子图片的大小:

在这里插入图片描述

修改后:
在这里插入图片描述
运行结果:
在这里插入图片描述
放大后也是如此:
在这里插入图片描述

顿时感觉这一句话说的真对!感谢百度百科的这位大佬撰写者
在这里插入图片描述
传送门——MoveWindow


1、GetWindowLong

var style = GetWindowLong(figure1, GWL_STYLE);
//获取窗体原来的风格

2、SetWindowLong

SetWindowLong(figure1, GWL_STYLE, style & ~WS_CAPTION & ~WS_THICKFRAME);  
//设置新风格,去掉标题,不能通过边框改变尺寸

3、MoveWindow

MoveWindow(figure1, 0, 0, panel1.Width + 20, panel1.Height + 40, true);
//移动到panel里合适的位置并重绘

4、

SetParent(figure1, panel1.Handle); //设置matlab图像窗体的父窗体为panel

传送门

Windows常见窗口样式和控件风格

windows 窗口样式

GetWindowLong介绍

SetWindowLong介绍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值