void MmPLEntPropertyDlg::SetInitDialogSize()
{
CRect rectDlg;
GetWindowRect(rectDlg);//x,y为对话框左上角的坐标 w,h为对话框的宽高
::SetWindowPos(this->m_hWnd, HWND_BOTTOM, , , rectDlg.Width(), rectDlg.Height() + , SWP_NOZORDER);
CenterWindow();//居中显示
} void MmPLEntPropertyDlg::MoveCtrlPosition(bool bModifySize /* = false */)
{
if(bModifySize)
{//改变控件大小
for(int i = ; i < ; i++)
{
CWnd *pWndCtrl = NULL;
if( == i) pWndCtrl = GetDlgItem(IDOK);
if( == i) pWndCtrl = GetDlgItem(IDCANCEL);
if( == i) pWndCtrl = GetDlgItem(IDC_LIST_PLENTPROPERTY); if ((NULL != pWndCtrl) && IsWindow(pWndCtrl->GetSafeHwnd()))
{
CRect rectCtrl;
pWndCtrl->GetWindowRect(rectCtrl);
ScreenToClient(rectCtrl);
int iLeft = rectCtrl.left;
int iTop = rectCtrl.top;
int iWidth = rectCtrl.Width();
int iHeight = rectCtrl.Height(); if( == i || == i)
{
//把button控件移动到新位置
pWndCtrl->MoveWindow(iLeft, iTop, iWidth, iHeight);
}
if( == i)
{//listCtrl高度
pWndCtrl->MoveWindow(iLeft, iTop + MoveSize, iWidth, iHeight - ListCtrl_ModifyHeight);
}
}
}
}
else//不改变控件大小,只改变位置
{
for(int i = ; i < ; i++)
{
CWnd *pWndCtrl = NULL;
if( == i) pWndCtrl = GetDlgItem(IDOK);
if( == i) pWndCtrl = GetDlgItem(IDCANCEL);
if( == i) pWndCtrl = GetDlgItem(IDC_LIST_PLENTPROPERTY); if ((NULL != pWndCtrl) && IsWindow(pWndCtrl->GetSafeHwnd()))
{
CRect rectCtrl;
pWndCtrl->GetWindowRect(rectCtrl);
ScreenToClient(rectCtrl);
int iLeft = rectCtrl.left;
int iTop = rectCtrl.top;
int iWidth = rectCtrl.Width();
int iHeight = rectCtrl.Height();
iTop += MoveSize;
// 把控件移动到新位置
pWndCtrl->MoveWindow(iLeft, iTop, iWidth, iHeight);
}
}
}
}

参考:http://zhidao.baidu.com/link?url=PdhhOAWqm93bvjSQexwf8WlT5By1RWQBISO5hmMqZ_VbyVhY6NivX5mh3twkFxD9JODhWgA0XPVrlPl_USTzOa

http://blog.csdn.net/lyshiba/article/details/7489510

mfc基于对话框的应用程序,如何设置初始对话框大小,移动控件位置的更多相关文章

  1. Android为TV端助力 外挂字幕(设置颜色,大小,位置,微调字幕)

    前提摘要:  可以给电影加字幕,目前支持srt和ass格式, 功能摘要:  支持微调字幕,设置大小,颜色,位置 1 .字幕解析类 package com.hhzt.iptv.lvb_x.utils; ...

  2. mfc基于对话框的简单四则运算计算器

    1.①创建mfc对话框窗口,对话框中所有控件都delete. ②绘制界面,按键都button,显示区域edit control,计算器名字用static text. ③所有控件ID改成语义化ID(可不 ...

  3. mfc设置半透明对话框

    BOOL CDialog7::OnInitDialog() { CDialog::OnInitDialog(); // TODO: 在此添加额外的初始化 ::SetWindowLong(GetSafe ...

  4. Java开发桌面程序学习(三)——基于Jfoenix库的JFXDialog封装仿Android对话框的工具DialogBuilder

    对话框的封装使用 最近写了个JFXUtils,DialogBuilder也是包含在里面了 JFXUtils的Github 前言 登录需要弹出登录对话框,但是,Jfoenix库使用对话框比较难受,还得动 ...

  5. 基于对话框的应用程序,点击button打开一个网页

    核心:使用Webbrowser控件 加入一个新的对话框,右键 Insert ActiveX control,选中 双击对话框生成响应的类(Web).并为webbrowser绑定成员变量(m_Web) ...

  6. 基于4.5Framework web程序、SQLSERVER数据库打包

    原文:基于4.5Framework web程序.SQLSERVER数据库打包 估计很多朋友和我一样,对于C/S程序打包很熟悉,但对于B/S程序打包一头雾水... 最近公司要求我们把项目和数据库(SQL ...

  7. SQL Sever无法打开链接对话框,未将对象引用设置到对象的实例。(AppIDPackage)

    前几天刚做完系统,先装的是SQL Sever2008,装完后还试了一下,OK~没问题,然后就继续装VS2012等一些软件.搞到很晚没有继续试试就睡了,第二天运行SSMS出问题了..(如图 1.0 所示 ...

  8. 【翻译】首个基于NHibernate的应用程序

    首个基于NHibernate的应用程序  Your first NHibernate based application 英文原文地址:http://www.nhforge.org/wikis/how ...

  9. 基于DevExpress的Winform程序安装包的制作

    在我们做系统开发的时候,都会面临一个安装包制作的问题,如何把我们做好的系统,通过安装包工具整合成一个安装包给客户进行安装.安装包的优势就是一步步安装就可以了,不用复制一大堆文件给客户,还怕缺少那个文件 ...

随机推荐

  1. time is always a factor, time is always now!!!!

    https://www.linkedin.com/pulse/time-always-now-joe-alderman ---------------------------------------- ...

  2. 将世界坐标转成NGUI坐标

    将世界坐标转成NGUI坐标,这个中间须要一个屏幕坐标,可參考例如以下代码: /// <summary> /// 将世界坐标转成UI坐标 /// </summary> /// & ...

  3. ruby rails

    http://www.zhihu.com/question/19552402   作者:陈振宇链接:http://www.zhihu.com/question/19552402/answer/1236 ...

  4. 【转载】读懂IL代码就这么简单(二)

    一 前言 IL系列 第一篇写完后 得到高人指点,及时更正了文章中的错误,也使得我写这篇文章时更加谨慎,自己在了解相关知识点时,也更为细致.个人觉得既然做为文章写出来,就一定要保证比较高的质量,和正确率 ...

  5. hibernate载入持久化对象的两种方式——get、load

    一.get与load对照 在hibernate中get和load方法是依据id取得持久化对象的两种方法.但在实际使用的过程中总会把两者混淆,不知道什么情况下使用get好,什么时候使用load方法效率更 ...

  6. net spy memcached 使用demo

    package memcached; import java.io.IOException; import java.net.InetSocketAddress; import net.spy.mem ...

  7. J2SE核心开发实战(二)——字符串与包装类

    字符串与包装类 一.实验简单介绍 在本章.我们将学习一些用于处理字符串的API以及包装类的相关知识. 本章知识点 字符串API 包装类及其应用 二.认识字符串类 1. 什么是字符串类 Java字符串类 ...

  8. C#WinForm窗体监听/拦截操作动作

    C#中的事件也是通过封装系统消息来实现的,如果你在WndProc函数中不处理该消息 那么,它会被交给系统来处理该消息,系统便会通过代理来实现鼠标单击的处理函数,因此你可以通过 WndProc函数来拦截 ...

  9. ubuntu搭建samba服务器

    一.为什么要用Samba?     Samba的主要任务就是实现Linux系统和Windows系统之间的资源共享.   二.需要的软件? 我是在ubuntu上实现的,所以我只需在配置好ubuntu的更 ...

  10. 项目Beta冲刺(团队5/7)

    项目Beta冲刺(团队5/7) 团队名称: 云打印 作业要求: 项目Beta冲刺(团队) 作业目标: 完成项目Beta版本 团队队员 队员学号 队员姓名 个人博客地址 备注 221600412 陈宇 ...