MFC如何使picture控件的图片随着对话框的大小改变而改变
发布网友
发布时间:2022-05-24 09:35
我来回答
共3个回答
热心网友
时间:2023-10-09 23:07
1、在对话框类中加入成员变量CRect m_rect;用于保存对话框大小变化前的大小;
2、在对话框的OnInitDialog()函数中获取对话框创建时的大小:
GetClientRect(&m_rect);
3、在WM_SIZE的响应函数OnSize()中加入以下代码:
CWnd *pWnd;
pWnd = GetDlgItem(IDC_LIST); //获取控件句柄
if(pWnd)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建
{
CRect rect; //获取控件变化前大小
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标
// cx/m_rect.Width()为对话框在横向的变化比例
rect.left=rect.left*cx/m_rect.Width();/////调整控件大小
rect.right=rect.right*cx/m_rect.Width();
rect.top=rect.top*cy/m_rect.Height();
rect.bottom=rect.bottom*cy/m_rect.Height();
pWnd->MoveWindow(rect);//设置控件大小
}
GetClientRect(&m_rect);//将变化后的对话框大小设为旧大小
热心网友
时间:2023-10-09 23:08
在对话框收到WM_SIZE时,先获取对话框的大小,然后改变picturebox的大小即可。
CRect rcClient,rcPicture;
GetClientRect(&rcClient);
m_PictureBox.GetClientRect(&rcPicture);
// 移动picturebox到对话框的左上角。
rcPicture.MoveToX(0);
rcPicture.MoveToY(0);
// pircurebox的长宽是对话框长宽的2分之1.
rcPicture.right = rcClient.Width() / 2;
rcPicture.bottom = rcClient.Height() / 2;
// 移动picturebox.
m_PictureBox.MoveWindow(rcPicture);
热心网友
时间:2023-10-09 23:08
在onsize函数中对picture控件进行movewindow就可以、追问没有OnSize函数
追答上面的不需要手动添加,只要在类向导里添加就有了、
MFC如何使picture控件的图片随着对话框的大小改变而改变
1、在对话框类中加入成员变量CRect m_rect;用于保存对话框大小变化前的大小;2、在对话框的OnInitDialog()函数中获取对话框创建时的大小:GetClientRect(&m_rect);3、在WM_SIZE的响应函数OnSize()中加入以下代码:CWnd *pWnd;pWnd = GetDlgItem(IDC_LIST); //获取控件句柄 if(pWnd)//判断是否...
如何使MFC中picture控件显示出来的图片和实际图片大小一致?
你只要将picture控件放在 窗口的左上角 ,调整窗口客户区大小和图片一样打就可以。
MFC如歌让图片自适应PictureControl大小
在对话框收到WM_SIZE时,先获取对话框的大小,然后改变picturebox的大小即可。CRect rcClient,rcPicture;GetClientRect(&rcClient);m_PictureBox.GetClientRect(&rcPicture);// 移动picturebox到对话框的左上角。rcPicture.MoveToX(0);rcPicture.MoveToY(0);// pircurebox的长宽是对话框长宽的2分...
mfcpicture控件设置图片自动切换
设置图片自动切换的步骤如下:1、加载bitmap图片,新建个mfc工程文件。2、拖动一个PictureControl控件到界面上。3、修改属性ID和Type值。4、右击资源文件,加入新的一张.bmp的图片进来,这个图片位置放置在res文件中。5、为图片添加个变量,更改下变量名。6、界面上拖个Button上来,双击,点击个点击事件...
mfc如何使控件随着窗口变化自动调整大小
//将变化后的对话框设置为旧大小Invalidate();//声明无效区域UpdateWindow();//立即更新程序}void SystemDlg::ChangeSize(CWnd* pWnd, int cx, int cy){if (pWnd){CRect rect; pWnd->GetWindowRect(&rect); //获取控件变化前的大小ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标...
MFC EasySize.h 使对话框最大化时,控件相应变大 但是运行时没有变_百度...
表示缩放后,控件距离边界上下左右位置保持不变,水平和垂直方向尺寸拉伸。复制了一个网上说明,你参考一下:步骤一:把easysize.h拷贝到CMyDlg项目文件夹中,同时在CMyDlg的.h文件和.cpp文件中加入#include "easysize.h";步骤二:在CMyDlg类的h文件中,加入DECLARE_EASYSIZE,注意结尾处不要加“;”...
MFC中怎么通过程序改变Picture Control控件的大小
获取到 picture control控件的句柄或指针,调用MoveWindow函数就可以重置该控件的位置和尺寸大小。
MFC 单文档工程中picture控件怎么按照图片大小比例显示图片,即控件大 ...
打开图片的时候,可以知道图片的长宽,然后根据这个长宽值,来设置picture控件。可以使用setSize(),也可以使用MoveWindow(),还可以使用SetWindowsPos
...Control)而另一个控件(Picture control)上边的图片会改变_百度...
我不知道怎么读取图片,所以我的方法是,先在对话框建若干Picture Control ,每个Picture Control 里面放一张图,在Spin Control前面先建一个EDIT CONTROL,然后建Spin Control与之绑定,在EDIT CONTROL的响应函数里根据EDIT CONTROL中的整数值选择该显示的图片进行显示 ...
MFC(我用的VS2008)中怎样改变picture控件(picture control)的边框样式...
好像在手动创建控件的时候通过指定DWORD dwStyle参数来设定 CStatic::Create(LPCTSTR lpszText,DWORD dwStyle,const RECT& rect,CWnd* pParentWnd,UINT nID = 0xffff )具体设置可以参考msdn