建立一个MFC对话框程序,运行时使对话框最大化显示(即全屏显示)该如何设置?

 我来答
匿名用户
2011-04-15
展开全部
testDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);

// TODO: 在此处添加消息处理程序代码

static RECT LastWindowRect = ;//用来保存窗口上一次的大小
CWnd *hWin;//构造一个句柄
int ux = cx - LastWindowRect.right;

//求出窗口的水平变化量
int uy = cy - LastWindowRect.bottom;

//求出窗口的竖直变化量
if((hWin = GetDlgItem(IDC_PPP)) != NULL) //IDC_LIST1为控件的ID号
{
RECT rect;
hWin->GetWindowRect(&rect);//获得控件的大小
ScreenToClient(&rect);//设备到客户
rect.right += ux;//
rect.bottom += uy;
hWin->MoveWindow(&rect);//改变控件大小
}
LastWindowRect.right = cx;
LastWindowRect.bottom = cy;
}
另外,站长团上有产品团购,便宜有保证
追问
可不可以再说详细些?是要再创建个新类还是加个成员函数啊?刚开始接触比较菜啊!不好意思。有帮助一定会加分的。感谢
shuizhi0904
2011-04-14 · TA获得超过380个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:150万
展开全部
方法一:
在OnInitDialog()函数中

ShowWindow(SW_SHOWMAXIMIZED);
初始化的时候

方法二:

当然,你可以获取屏幕大小,然后设置窗口位置/大小
//ShowWindow(SW_MAXIMIZE);
// 获得屏幕分辨率
HDC hDesktopDC = CreateDC(_T("DISPLAY"), NULL, NULL, NULL);
int xScrn = GetDeviceCaps(hDesktopDC, HORZRES);
int yScrn = GetDeviceCaps(hDesktopDC, VERTRES);
MoveWindow(0, 0, xScrn, yScrn);

写OnShowWindows消息响应,调showwindow(SW_SHOWMAXIMIZED)

方法三:

在DIALOG的OnInitDialog过程中加入
CDialog::OnInitDialog();
SetWindowPos(NULL,0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN),0);

其中最一种方法最简单,
第二种方法比较好用,可以自定义设置对话框的大小。
二种方法都在VC6+win2k下测试有效!
追问
用第一种方法使串口最大化,那么控件的大小随着窗口大小变化该怎么做呢?要详细哦,我比较菜!嘿嘿!非常感谢!

参考资料: http://cool.worm.blog.163.com/blog/static/6433900620086172104744/

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式