Windows API一日一練(37)MoveWindow函數

來源:互聯網
上載者:User
 Windows API一日一練(37)MoveWindow函數    
當你設計一個對話方塊的視窗時,就需要布局好所有按鈕、文本顯示框等等,由於每個按鈕都是一個視窗,那麼就需要移動這些視窗到合適的位置,這時就需要使用到MoveWindow函數。或者當你的介面需要動態地修改按鈕位置,比如視窗放大了,按鈕就需要跟著移動,否則按鈕還在原來的位置,放大也不會移動按鈕的位置,這時也需要使用MoveWindow函數重新設定按鈕的位置。只要你想移動視窗,就可以考慮使用這個函數來實現。
 
函數MoveWindow聲明如下:
WINUSERAPI
BOOL
WINAPI
MoveWindow(
    __in HWND hWnd,
    __in int X,
    __in int Y,
    __in int nWidth,
    __in int nHeight,
    __in BOOL bRepaint);
hWnd是視窗的控制代碼。
X是視窗在X軸的位置。
Y是視窗在Y輛的位置。
nWidth是視窗的寬度。
nHeight是視窗的高度。
bRepaint是設定是否重畫視窗和父視窗。當設定為TRUE時,就進行重畫。當設定為FALSE時,就不進行重畫,需要手功進行更新指定的地區。
 
調用這個函數的例子如下:
#001 //
#002 // 響應命令.
#003 // 蔡軍生 2007/09/16 QQ:9073204
#004 //
#005 LRESULT CCaiWinMsg::OnCommand(int nID,int nEvent)
#006 {
#007  // 菜單選項命令響應:
#008  switch (nID)
#009  {
#010  case IDC_CREATEBTN:
#011         //顯示一個按鈕。
#012         if (!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         break;
#020  case IDC_BTN:
#021         OutputDebugString(_T("按鈕按下/r/n"));
#022         {
#023               static bool bChangeText = true;
#024               if (bChangeText)
#025               {
#026                    //設定按鈕的文字。
#027                    SetWindowText(m_hBtn,_T("改變它"));
#028
#029                    //改變按鈕視窗的位置和大小。
#030                   MoveWindow(m_hBtn,10,10,100,32,TRUE);
#031               }
#032               else
#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         break;
#045  default:
#046         return CCaiWin::OnCommand(nID,nEvent);
#047  }
#048
#049  return 1;
#050 }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.