• MFC 改变控件的大小和位置


    mfc 改变控件大小和位置用到的函数:

    1 1) void MoveWindow(int x, int y, int nWidth, int nHeight);
    2 2) void MoveWindow(LPCRECT lpRect);

    第1)个函数用法需给出控件的新的坐标和宽度、高度;

    第2)个函数用法需给出存放位置的CRect对象;

    例如:

    CWnd *pWnd = NULL;
    pWnd = GetDlgItem(IDC_EDIT1); //获取控件指针,IDC_EDIT1为控件ID号
    pWnd->MoveWindow(CRect(0, 0, 100, 100));//在窗口左上角显示一个宽100、高100的编辑控件
    

      

    SetWindowPos()函数使用更灵活,多用于只修改控件位置而大小不变或只修改大小而位置不变的情况:

    1 BOOL SetWindowPos(const CWnd* pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags);
    2 第一个参数一般设为NULL;
    3 x、y控件位置;
    4 cx、cy控件宽度和高度;
    5 nFlags常用取值:
    6 SWP_NOZORDER:忽略第一个参数;
    7 SWP_NOMOVE:忽略x、y,维持位置不变;
    8 SWP_NOSIZE:忽略cx、cy,维持大小不变;

    例:

    1 CWnd *pWnd = NULL;
    2 CWnd *pWnd;
    3 pWnd = GetDlgItem( IDC_BUTTON1 ); //获取控件指针,IDC_BUTTON1为控件ID号
    4 pWnd->SetWindowPos( NULL,50,80,0,0,SWP_NOZORDER | SWP_NOSIZE ); //把按钮移到窗口的(50,80)处
    5 pWnd = GetDlgItem( IDC_EDIT1 );
    6 pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER | SWP_NOMOVE ); //把编辑控件的大小设为(100,80),位置不变
    7 pWnd = GetDlgItem( IDC_EDIT1 );
    8 pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER ); //编辑控件的大小和位置都改变
    9 以上方法也适用于各种窗口。
  • 相关阅读:
    HDU4385Moving Bricks【状压DP】
    用位运算实现加减法
    hdu 1874(最短路 Dilkstra +优先队列优化+spfa)
    codeforces 782B The Meeting Place Cannot Be Changed+hdu 4355+hdu 2438 (三分)
    hdu 1542(线段树+扫描线 求矩形相交面积)
    hdu 2602(经典01背包)
    hdu 1698(线段树区间更新)
    hdu 1754(单点更新 ,区间最大值)
    NYOJ 寻找最大数
    hdu 2222(AC自动机模版题)
  • 原文地址:https://www.cnblogs.com/Genesis-007/p/5718090.html
Copyright © 2020-2023  润新知