日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MFC SetWindowPos

發布時間:2023/12/18 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MFC SetWindowPos 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

函數原型:

  BOOL CWnd::SetWindowPos
  (
  const?CWnd*?pWndInsertAfter, //插入的地方
  int x, //水平坐標
  int y, //垂直坐標
  int cx, //寬
  int cy, //高
  UINT nFlags //窗口定位標識
  );

說明:

  這個函數能改變窗口的大小、位置和設置子窗口、彈出窗口或頂層窗口的排列順序。?
  返回值:

  返回值BOOL類型,如果返回值非零表示成功,返回零表示失敗。

參數表:

  參數類型及說明?
  hWndInsertAfter HWND,置于hwnd前面的窗口句柄。這個參數必須是窗口的句柄或是下面的值之一:

????wndBottom?將窗口置于其它所有窗口的底部
????wndTop?將窗口置于它所有窗口的頂部
????wndTopMost?將窗口置于其它所有窗口的頂部,并位于任何最頂部窗口的前面。即使這個窗口不是活動窗口,也維持最頂部狀態
????wndNoTopMost?將窗口置于其它所有窗口的頂部,并位于任何最頂部窗口的后面。如果這個窗口非頂部窗口,這個標記對該窗口并不產生影響?

x: int,指定窗口新的X坐標

Y: int,指定窗口新的Y坐標

cx: int,指定窗口新的寬度

cy: int,指定窗口新的高度

nFlags: UINT,指定窗口狀態和位置的標記。

?

如下將窗口置頂,并且不改變窗口的位置與大小
SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE);

相關函數:

MoveWindow,SetActiveWindow,SetForegroundWindow

?

以下例子通過MoveWindow()來達到窗口展開與折疊效果:

void CMainDlg::OnButton_more()?
{
?CRect cur_rect;
?int x, y;
?int cx, cy;

?if(m_moreIsActive)
?{
??GetWindowRect(&cur_rect);
??x = cur_rect.left;
??y = cur_rect.top;
??cx = cur_rect.Width();
??cy = cur_rect.Height()*2;
?
??MoveWindow(x, y, cx, cy);
??m_moreIsActive = false;
?}
?else
?{
??GetWindowRect(&cur_rect);
??x = cur_rect.left;
??y = cur_rect.top;
??cx = cur_rect.Width();
??cy = cur_rect.Height()/2;

??MoveWindow(x, y, cx, cy);
??m_moreIsActive = true;
?}?
}

總結

以上是生活随笔為你收集整理的MFC SetWindowPos的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。