空间随着窗体变化而变化的示例
来源:互联网 发布:hr软件 北森 编辑:程序博客网 时间:2024/05/16 04:56
用一个对话框去调用另一个对话框,我们在北条调用的对话框下添加如下代码
在头文件下添加:
public:
CRect m_rect; //添加成员变量
void SetContralInfo(WORD CtrlId);// 添加成员函数
protected:
int m_old_cx,m_old_cy;//添加成员变量。来记录原来的大小
CDWordArray m_control_info;
在.cpp下添加
(1)构造函数中初始化
logoview::logoview(CWnd* pParent /*=NULL*/)
: CDialog(logoview::IDD, pParent)
{
m_old_cy = m_old_cx = 0; //初始化成员变量
}
(2)添加两个函数OnSize和OnInitDialog函数,分别在类上添加WM_SIZE和WM_INITDIALOG两个消息就加上了
(3)OnSzie下实现
void logoview::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if (cx == 0 || cy == 0)
{
cx = 800;
cy = 600;
}
float dx_percent = (m_old_cx == 0)? 1: (float)((float)cx/(float)m_old_cx);
float dy_percent = (m_old_cx == 0)? 1: (float)((float)cy/(float)m_old_cy);
if (m_old_cx)
{
CRect WndRect;
CWnd *pWnd;
for (int i = 0;i<m_control_info.GetSize();i++)
{
pWnd = GetDlgItem(m_control_info[i]);
if (!pWnd)
{
TRACE("Control ID_%d NOT FOUND!!\n",m_control_info[i]);
continue;
}
pWnd->GetWindowRect(&WndRect);
ScreenToClient(&WndRect);
WndRect.left = (int)(WndRect.left*dx_percent);
WndRect.right = (int)(WndRect.right*dx_percent);
WndRect.bottom = (int)(WndRect.bottom*dx_percent);
WndRect.top = (int)(WndRect.top*dx_percent);
pWnd->MoveWindow(&WndRect);
}
}
m_old_cx = cx;
m_old_cy = cy;
}
(4)OnInitDialog下加入所有对话框上的控件ID
BOOL logoview::OnInitDialog()
{
CDialog::OnInitDialog();
SetContralInfo(IDC_LIST1);
SetContralInfo(IDC_STATIC_logo );
SetContralInfo(IDOK);
SetContralInfo(IDCANCEL);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
(5)实现添加的成员函数
void logoview::SetContralInfo(WORD CtrlId)
{
m_control_info.Add(CtrlId);
}
- 空间随着窗体变化而变化的示例
- 内容随着显示器的变化而变化
- 窗体随着另外一个窗体的变化而变化 的解决办法
- 随着变化而变化(Observer)
- 让div的大小随着内容的变化而变化
- 手机APP字体随着屏幕的变化而变化
- 随着浏览器窗口变化而变化的函数
- C#巧用anchor和dock设计复杂界面(控件随着窗体大小的变化而变化)
- CFormView上让控件的大小随着窗体的变化而自动适应
- |控件随着窗口变化而变化|
- C#中怎样让控件大小随着窗体大小变化而变化?
- winform 控件随窗体的变化而变化
- 如何让控件随窗体的大小变化而变化
- 子窗体随着父窗体大小变化
- Listcontrol控件随着框架窗口的大小而变化
- 家是一个随着年龄而不断变化的概念。
- 随着input里边值的变化而触发js事件
- 如何使JTextArea随着窗体的变化自动调整大小
- sqlserver2008远程连接不了
- gamma的传说(转自KlayGE Engine)
- java静态内部类
- (转)某信息系统中一种经济适用的数据库容灾方法 ORACLE Standby
- java垃圾回收GC
- 空间随着窗体变化而变化的示例
- (转+珍藏)ORACLE内存分配的原则--广州ORACLE DBA 老WU作品
- 我要干什么&我的目标
- 架构设计与安全
- C#自定义枚举类的实现
- java 转 exe
- JSON数据格式介绍
- 外设内存映射机制
- 再学BSD Socket