在VC的win32 Application 工程中,在改变对话框大小时,控件始终保持充满整个客户区的问题

原创 2007年10月12日 16:07:00

 以前在做Mapx二次程序开发的时候,不知道怎么使控件在改变父对话框的情况总是保持充满客户区的状态,今天终于在win32 API中自己从底层给实现了,呵呵。

用户改变对话框大小时,都会激发WM_SIZE消息,操作系统将此消息传递给应用程序的消息循环,我们要做的就是定义WM_SIZE消息响应函数,在响应函数中将控件的大小设置成客户区大小就可以了。操作系统将当前改变后父对话框的客户区的长宽存储在WM_SIZE消息的参数中,我们可以在MSDN中查到获取这两个参数值的方法。实现代码如下:

  case WM_SIZE:
   {
    int nWidth=0;
    int nHeight=0;
    nWidth = LOWORD(lParam);
    nHeight =HIWORD(lParam);
    HWND hMsg = GetDlgItem(hWnd,IDC_EDIT_MSG);
    SetWindowPos(hMsg,HWND_TOP,0,0,nWidth,nHeight,SWP_NOACTIVATE); 
    break;
   }

不过,这之前,在编辑对话框属性时要将对话框的border属性编辑为Resizeing,还有设置WM_THICKFRAME属性。

(Win32窗口)如何把窗口客户区作为整个窗口的宽高??

// ... case WM_MOUSEMOVE: // 获取鼠标的XY坐标 g_mouseX = LOWORD(lParam); g_mouseY = HIWORD(lParam); ...
  • yazhen3692
  • yazhen3692
  • 2017年01月19日 08:19
  • 365

客户区的大小

  • xin_l_o
  • xin_l_o
  • 2010年05月17日 19:45
  • 2196

获取客户区大小的办法

在Win SDK编程过程中,难免会涉及到需要获得客户区的大小,那么获得客户区大小有几种方法呢?这里我整理了常用的两种。使用GetClientRect() 废话不多说,直接上代码:// 响应什么消息都...
  • u012814856
  • u012814856
  • 2017年03月06日 00:04
  • 721

根据客户区大小反推窗口大小

客户区 窗口大小
  • tracing
  • tracing
  • 2015年10月08日 08:30
  • 748

设置窗口客户区大小的方法

转载自:http://www.cnblogs.com/nbsofer/archive/2013/03/21/2974593.html     话说, Windows SDK貌似并没有提供设置一个...
  • zhouyelihua
  • zhouyelihua
  • 2014年03月14日 22:50
  • 1750

MFC如何使控件大小随着对话框大小自动调整

如果对话框或视类的大小调后,控件的大小和位置没有变化,界面看起来会很不爽.     控件是从CWnd派生的,但不能使用SetWindowPos()或OnSize()或OnSizing()来改...
  • yangxiao_xiang
  • yangxiao_xiang
  • 2013年01月13日 19:04
  • 1956

[Win32SDK基本] 窗口详解(超详细)

Win32SDK创建窗口,虽然早已经烂大街了,但是那些资料太散,都不全面,无法满足我编程的需要,因此,有必要整理一下。 这篇文章包括一下几个部分: 1。窗口类详解 2。窗口样式详解 3。窗口显示更新详...
  • zuishikonghuan
  • zuishikonghuan
  • 2015年06月05日 16:20
  • 5646

win32 api 子控件在主窗口中的位置大小

函数功能:该函数把相对于一个窗口的坐标空间的一组点映射成相对于另一窗口的坐标空 的一组点。   函数原型:int MapWindowPoints(HWND hWndFrom, HWND hW...
  • u013678464
  • u013678464
  • 2014年07月16日 20:40
  • 1779

MFC控件随对话框大小改变而改变

这也是我项目中碰到的问题,要让对话框中的控件随着对话框大小的变化进行自动调整,一般的做法是在WM_SIZE的响应函数中对所有的控件用MoveWindow()或者SetWindowPos()设置其变化比...
  • lyh03601
  • lyh03601
  • 2014年08月20日 10:07
  • 1738

VS2013 MFC 对话框控件大小随窗口大小改变而改变

窗口大小改变后控件大小也随之改变在对话框头文件中定义头文件名称:项目名称Dlg.hPOINT Old;//存放对话框的宽和高。 对话框cpp中初始化cpp文件名称:项目名称Dlg.cpp 在OnIn...
  • why19940926
  • why19940926
  • 2016年12月30日 21:43
  • 1783
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在VC的win32 Application 工程中,在改变对话框大小时,控件始终保持充满整个客户区的问题
举报原因:
原因补充:

(最多只允许输入30个字)