CDialogBar中的属性页大小控制问题

huaboy408 huaboy408 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
现在修改一些代码:
在SDI界面上放了一个CDialogBar的工具条,上面放置属性页控件,类似MSDN左边的工具条。
在MainFrm中创建CDialogBar
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (!m_wndTemplate.Create(this, IDD_DIALOG_TEMPLATE,
CBRS_RIGHT,
IDD_DIALOG_TEMPLATE))
{
TRACE0("Failed to create dialog bar m_controlPanel\n");
return FALSE; // fail to create
}
}

然后在CDialogBar的派生类中创建属性页,并初始化大小
void CDlgModTemplate::InitDialogBarHandler(WORD wParam, DWORD lParam)
{
m_bApplyBodypart = TRUE;
m_bImpre=TRUE;
m_bDesc=TRUE;
m_bSImpose=FALSE;
m_strCurTempKey=_T("");
CRect rect;
GetWindowRect(rect);
ScreenToClient(&rect);
m_controlSheet.MoveWindow(rect);
m_controlSheet.m_Page1.MoveControl(rect);

UpdateData(FALSE);
}

int CDlgModTemplate::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialogBar::OnCreate(lpCreateStruct) == -1)
return -1 ;

// TODO: Add your specialized creation code here
// ---------
m_controlSheet.CommonConstruct(NULL, 0);
//创建属性页
if (!m_controlSheet.Create(this, WS_CHILD | WS_VISIBLE | DS_CONTEXTHELP | DS_3DLOOK))
{
TRACE0("Failed to create m_controlSheet\n");
return -1;
}

m_sizeDefault.cy = 600;//这里不知道是怎么操作CDialogBar的大小的
m_sizeDefault.cx = 200;


m_controlSheet.SetWindowPos(NULL, 2 ,2 ,0 ,0 , SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE );

// Info Bar Settings

SetBarStyle(this->GetBarStyle() |
CBRS_SIZE_DYNAMIC);
EnableDocking(CBRS_ALIGN_LEFT | CBRS_ALIGN_RIGHT);

SetWindowPos(NULL,
0, 0, m_sizeDefault.cx + 4, m_sizeDefault.cy + 4,
SWP_NOZORDER | SWP_NOMOVE | SWP_NOACTIVATE );

// We post WM_INITDIALOGBAR message here to dialog bar
PostMessage (WM_INITDIALOGBAR, 0 , 0) ;
return 0 ;
}

当我把显示器分辨率调到1600×1200之后,发现属性页大小并没有随着CDialogBar的大小改变而改变
CRect rect;
GetWindowRect(rect);
ScreenToClient(&rect);
m_controlSheet.MoveWindow(rect);
而我用AfxMessageBox观察rect的区域大小是随着分辨率的不同而改变的,可是界面上的属性页大小没有改变,没有占满屏幕的高度,且属性页的控件重新排列后,有些就被遮住了看不到了。我不知道毛病出在哪里,请大家帮忙,看看上面的程序问题出现在什么地方?
...全文

相关推荐

C# Socket编程实战:从TCP直连到UDP NAT穿透的完整方案

在工业控制、音视频传输和设备互联场景中,点对点直连是降低延迟与带宽成本的关键技术。然而,多数设备位于NAT之后,传统TCP直连往往因网络拓扑限制而失败。理解NAT工作原理——从锥型到对称型——是选择穿透策略的前提。UDP因其无连接特性,成为跨NAT打洞的主流方案,通过信令服务器交换公网端点,双端同时发包即可建立临时映射。本文从C# Socket基础API出发,依次讲解TcpListener/TcpClient实现局域网直连、心跳保活与消息边界处理,再深入UDP打洞的完整流程,包括信令服务器、客户端核心代码及

cyx 22

P2P之NAT穿透原理

P2P之NAT穿透原理介绍 背景          一次项目中,对于主动协议接入的设备,客户希望能够设备端直接推送码流到客户端以此减少中心媒体的负载。所以对P2P这块方案做了了解,这里做下整理。 基本概念 P2P对等网络 即对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构  ,是对等计算模型在应用层形成的一种组网或网络形式。“Peer”在英语里有“对等者、...

一檐宁静

NAT-UDP穿透详解与实践

一、NAT-UDP穿透详解 1、NAT分类 1.1 基础型NAT 仅将内网主机的私有IP地址转换成公网的IP地址,并不对TCP/UDP端口信息进行转换, 分为静态NAT和动态NAT。 > 静态NAT:一个公网IP对应一个内部IP,一对一转换 > 动态NAT:N个公网IP对应M个内部IP,不固定的一对一转换关系 1.2 NAPT NAPT不但会改变经过这个NAT设备的IP数据报的IP地址,还会改变IP数据报的TCP/UDP端口。 现在基本使用这种,又分为对称和..

北雨南萍

【雷达信号处理】数字下变频(DDC)(Matlab代码实现)

内容概要:本文介绍了基于MATLAB的雷达信号处理中数字下变频(DDC)技术的实现方法,重点阐述了DDC在雷达接收机前端信号处理中的关键作用。通过将高频回波信号下变频至基带,便于后续进行数字化处理与目标信息提取。文中提供了完整的MATLAB代码实现,涵盖混频、低通滤波、抽取等核心步骤,帮助读者理解DDC的工作原理与工程实现细节。; 适合人群:具备一定信号与系统、数字信号处理基础知识,从事雷达、通信或电子工程相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于教学演示,加深对数字下变频原理的理解;②作为雷达或通信系统仿真项目的基础模块;③辅助科研人员快速搭建信号处理链路,进行算法验证与性能分析。; 阅读建议:建议结合数字信号处理教材中的混频、奈奎斯特采样及多速率信号处理理论进行学习,动手运行并调试代码,尝试调整参数(如本振频率、滤波器阶数、抽取因子)以观察对输出信号的影响,从而深入掌握DDC的设计要点与实际应用。

小念念_

福建省福州新区矢量面数据-02坐标-geojson格式.json

福州新区区划面数据,geojson格式,02坐标

samLi0620
评论 14
收藏 已收藏
分享
返回顶部
huaboy408
界面 15,976 成员 115,866 内容