windowsapi函数:Windows API一日一练(37)MoveWindow函数

  当你设计个对话框窗口时就需要布局好所有按钮、文本显示框等等由于每个按钮都是个窗口那么就需要移动这些窗口到合适位置这时就需要使用到MoveWindow或者当你界面需要动态地修改按钮位置比如窗口放大了按钮就需要跟着移动否则按钮还在原来位置放大也不会移动按钮位置这时也需要使用MoveWindow重新设置按钮位置只要你想移动窗口就可以考虑使用这个来实现

  MoveWindow声明如下:

WINUSERAPI
BOOL
WINAPI
MoveWindow(
    __in HWND hWnd,
    __in  X,
    __in  Y,
    __in  nWidth,
    __in  nHeight,
    __in BOOL bRepa);


  hWnd是窗口句柄

  X是窗口在X轴位置

  Y是窗口在Y辆位置

  nWidth是窗口宽度

  nHeight是窗口高度

  bRepa是设置是否重画窗口和父窗口当设置为TRUE时就进行重画当设置为FALSE时就不进行重画需要手功进行更新指定区域

  这个例子如下:

#001 //
#002 // 响应命令.
#003 // 蔡军生 2007/09/16 QQ:9073204
#004 //
#005 LRESULT CCaiWinMsg::OnCommand( nID, nEvent)
#006 { 
#007  // 菜单选项命令响应:
#008  switch (nID)
#009  {
#010   IDC_CREATEBTN:
#011         //显示个按钮
#012          (!m_hBtn)
#013         {
#014                m_hBtn = CreateWindow(_T("BUTTON"),_T("按钮"),
#015                    WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON,
#016                    50,50,100,32,
#017                     m_hWnd,(HMENU)IDC_BTN,m_hInstance,NULL);
#018         }                                           
#019         ;
#020   IDC_BTN: 
#021         OutputDebugString(_T("按钮按下\r\n"));
#022         {
#023                bool bChangeText = true;
#024                (bChangeText)
#025               {
#026                    //设置按钮文字
#027                    SetWindowText(m_hBtn,_T("改变它"));
#028 
#029                    //改变按钮窗口位置和大小
#030                   MoveWindow(m_hBtn,10,10,100,32,TRUE);
#031               }
#032               
#033               {
#034                    //设置按钮文字
#035                    SetWindowText(m_hBtn,_T("按钮"));
#036 
#037                   //改变按钮窗口位置和大小
#038                   MoveWindow(m_hBtn,50,50,100,32,TRUE);
#039               }
#040 
#041               //每次都改变
#042               bChangeText = !bChangeText; 
#043         }
#044         ;
#045  default:
#046          CCaiWin::OnCommand(nID,nEvent);
#047  }
#048 
#049   1;
#050 }


Tags:  vcmovewindow movewindow windowsapi函数库 windowsapi函数

延伸阅读

最新评论

发表评论