龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC中自动改变控件位置和大小的对话框类(3)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
private: int m_iClientWidth; // 对话框client区域的宽度 int m_iClientHeight; // 对话框client区域的高度 int m_iMinWidth; // 对话框的最小宽度 int m_iMinHeight; // 对话框的最小

private:
 int m_iClientWidth; // 对话框client区域的宽度
 int m_iClientHeight; // 对话框client区域的高度
 int m_iMinWidth; // 对话框的最小宽度
 int m_iMinHeight; // 对话框的最小高度
 PDLGCTLINFO m_pControlArray; // 控件信息数组指针
 int m_iControlNumber; // 设置控件信息的控件个数
 BOOL m_bShowSizeIcon; // 是否显示表示可改变大小的图标
 CStatic m_wndSizeIcon; // 放图标的静态控件
 // 保存图标的bitmap
 CBitmap m_bmpSizeIcon;
 BITMAP m_bitmap;
};

lxDialog.cpp文件:

//////////////////////////////////////////////////////////////////////
// 自动改变控件位置和大小的对话框类
// 文件名:lxDialog.cpp
// 作者:StarLee(coolstarlee@sohu.com)
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "lxDialog.h"

// 表示可改变大小的图标ID
#ifndef OBM_SIZE
#define OBM_SIZE 32766
#endif

ClxDialog::ClxDialog(UINT nID, CWnd* pParent /*=NULL*/)
: CDialog(nID, pParent)
, m_iClientWidth(0)
, m_iClientHeight(0)
, m_iMinWidth(0)
, m_iMinHeight(0)
, m_pControlArray(NULL)
, m_iControlNumber(0)
, m_bShowSizeIcon(TRUE)
{}

BEGIN_MESSAGE_MAP(ClxDialog, CDialog)
 ON_WM_SIZE()
 ON_WM_SIZING()
END_MESSAGE_MAP()

BOOL ClxDialog::OnInitDialog()
{
 CDialog::OnInitDialog();

 // 设置对话框为可变大小的
 ModifyStyle(0, WS_SIZEBOX);

 // 以对话框的初始大小作为对话框的宽度和高度的最小值
 CRect rectDlg;
 GetWindowRect(rectDlg);
 m_iMinWidth = rectDlg.Width();
 m_iMinHeight = rectDlg.Height();

 // 得到对话框client区域的大小
 CRect rectClient;
 GetClientRect(rectClient);
 m_iClientWidth = rectClient.Width();
 m_iClientHeight = rectClient.Height();

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!
按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接