• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            山寨:不是最好的,是最適合我們的!歡迎體驗山寨 中文版MSDN

            Blog @ Blog

            當華美的葉片落盡,生命的脈絡才歷歷可見。 -- 聶魯達

            常用鏈接

            統計

            積分與排名

            BBS

            Blog

            Web

            最新評論

            GetWindowRect,GetClientRect,ScreenToClient MoveWindow SetWindowPos 用法說明

            GetWindowRect() 得到的是在屏幕坐標系下的RECT(即以屏幕左上角為原點)
               
            GetClientRect() 得到的是在客戶區坐標系下的RECT(即以所在窗口左上角為原點,去掉了標題欄計算,僅僅是個大小,返回值的左上角永遠為0,0)
              
            ScreenToClient() 就是把屏幕坐標系下的RECT坐標轉換為客戶區坐標系下的RECT坐標。

            void   MoveWindow(   int   x,   int   y,   int   nWidth,   int   nHeight,   BOOL   bRepaint   =   TRUE   );  
              void   MoveWindow(   LPCRECT   lpRect,   BOOL   bRepaint   =   TRUE   );  
              參數  
              x指定了CWnd的左邊的新位置。  
              y指定了CWnd的頂部的新位置。  
              nWidth指定了CWnd的新寬度。  
              nHeight指定了CWnd的新高度。  
              bRepaint指定了是否要重畫CWnd。如果為TRUE,則CWnd象通常那樣在OnPaint消息處理函數中接收到一條WM_PAINT消息。如果 這個參數為FALSE,則不會發生任何類型的重畫操作。這應用于客戶區、非客戶區(包括標題條和滾動條)和由于CWnd移動而露出的父窗口的任何部分。當 這個參數為FALSE的時候,應用程序必須明確地使CWnd和父窗口中必須重畫的部分無效或重畫。lpRectCRect對象或RECT結構,指定了新的 大小和位置。說明這個函數改變窗口的位置和大小。對于頂層的CWnd對象,x和y參數是相對于屏幕的左上角的。對于子對象,它們是相對于父窗口客戶區的左 上角的。  
              MoveWindow函數發送一條WM_GETMINMAXINFO消息。處理這個消息時,CWnd得到一個改變最大和最小的窗口缺省值的機會。如果傳遞 給MoveWindow成員函數的參數超過了這些值,則在WM_GETMINMAXINFO處理函數中可以用最小或最大值來代替這些值。  
               
               
               
              CWnd::SetWindowPosBOOL   SetWindowPos(   const   CWnd*   pWndInsertAfter,   int   x,   int   y,   int   cx,   int   cy,UINT   nFlags   );  
              返回值如果函數成功,則返回非零值;否則返回0。  
              參數pWndInsertAfter標識了在Z軸次序上位于這個CWnd對象之前的CWnd對象。這個參數可以是指向CWnd對象的指針,也可以是指向下 列值的指針:l   wndBottom       將窗口放在Z軸次序的底部。如果這個CWnd是一個頂層窗口,則窗口將失去它的頂層狀態;系統將這個窗口放在其它所有窗口的底部。l   wndTop       將窗口放在Z軸次序的頂部。l   wndTopMost       將窗口放在所有非頂層窗口的上面。這個窗口將保持它的頂層位置,即使它失去了活動狀態。wndNoTopMost       將窗口重新定位到所有非頂層窗口的頂部(這意味著在所有的頂層窗口之下)。這個標志對那些已經是非頂層窗口的窗口沒有作用。有關這個函數以及這些參數的使 用規則參見說明部分。x指定了窗口左邊的新位置。y指定了窗口頂部的新位置。cx指定了窗口的新寬度。cy指定了窗口的新高度。nFlags指定了大小和 位置選項。這個參數可以是下列值的組合:l   SWP_DRAWFRAME       圍繞窗口畫出邊框(在創建窗口的時候定義)。l   SWP_FRAMECHANGED       向窗口發送一條WM_NCCALCSIZE消息,即使窗口的大小不會改變。如果沒有指定這個標志,則僅當窗口的大小發生變化時才發送 WM_NCCALCSIZE消息。l   SWP_HIDEWINDOW       隱藏窗口。SWP_NOACTIVATE       不激活窗口。如果沒有設置這個標志,則窗口將被激活并移動到頂層或非頂層窗口組(依賴于pWndInsertAfter參數的設置)的頂部。l   SWP_NOCOPYBITS       廢棄這個客戶區的內容。如果沒有指定這個參數,則客戶區的有效內容將被保存,并在窗口的大小或位置改變以后被拷貝回客戶區。l   SWP_NOMOVE       保持當前的位置(忽略x和y參數)。l   SWP_NOOWNERZORDER       不改變擁有者窗口在Z軸次序上的位置。l   SWP_NOREDRAW       不重畫變化。如果設置了這個標志,則不發生任何種類的變化。這適用于客戶區、非客戶區(包括標題和滾動條)以及被移動窗口覆蓋的父窗口的任何部分。當這個 標志被設置的時候,應用程序必須明確地無效或重畫要重畫的窗口和父窗口的任何部分。l   SWP_NOREPOSITION       與SWP_NOOWNERZORDER相同。l   SWP_NOSENDCHANGING       防止窗口接收WM_WINDOWPOSCHANGING消息。l   SWP_NOSIZE       保持當前的大小(忽略cx和cy參數)。l   SWP_NOZORDER       保持當前的次序(忽略pWndInsertAfter)。l   SWP_SHOWWINDOW       顯示窗口。  
               
              調用這個成員函數以改變子窗口、彈出窗口和頂層窗口的大小、位置和Z軸次序。窗口在屏幕上按照它們的Z軸次序排序。在Z軸次序上處于頂端的窗口將程序在所 有其它窗口的頂部。子窗口的所有坐標都是客戶坐標(相對于父窗口客戶區的左上角)。窗口可以被移動到Z軸次序的頂部,既可以通過將 pWndInsertAfter參數設為&wndTopMost,并確保沒有設置SWP_NOZORDER標志,也可以通過設置窗口的Z軸次序使 它位于所有現存的頂層窗口上方。當一個非頂層窗口被設為頂層窗口時,它擁有的窗口也被設為頂層的。它的擁有者不發生變化。如果頂層窗口被重新定位到Z軸次 序的底部(&wndBottom)或任何非頂層窗口之后,則它將不再是頂層窗口。當頂層窗口被變為非頂層窗口時,它所有的擁有者和它擁有的所有窗 口都被變為非頂層窗口。如果既沒有指定SWP_NOACTIVE標志也沒有指定SWP_NOZORDER標志(這意味著應用程序要求窗口被同時激活并放入 指定的Z軸次序),則pWndInsertAfter參數中指定的值將只在下列環境下適用:l   在pWndInsertAfter參數中既沒有指定&wndTopMost也沒有指定&wndNoTopMost。  
              這個窗口不是活動窗口。應用程序不能激活一個非活動窗口但同時又不把它帶到Z軸次序的頂部。應用程序可以沒有任何限制地改變活動窗口的Z軸次序。非頂層窗 口可能擁有一個頂層窗口,但是反之則不成立。任何被頂層窗口擁有的窗口(例如對話框)都將自己變為頂層窗口,以確保所有被擁有的窗口位于它們的擁有者上 方。在Windows   3.1或更新的版本中,可以將窗口移動到Z軸次序的頂部,并通過設置它們的WS_EX_TOPMOST風格而將之鎖定在那里。這種頂層窗口即使在失去活動 狀態以后也會保持頂層位置。例如,選擇WinHelp的Always   On   Top命令會使幫助窗口變為頂層,并且在你返回應用程序之后它還保持可見。要創建一個頂層窗口,應在調用SetWindowPos的時候將 pWndInsertAfter參數設為&wndTopMost,或者在創建窗口的時候設置WS_EX_TOPMOST風格。如果Z軸次序中包含 了任何具有WS_EX_TOPMOST風格的窗口,則用&wndTopMost移動的窗口將被放到所有非頂層窗口的頂部,但是位于任何頂層窗口的 下面。當應用程序激活一個不具有WS_EX_TOPMOST風格的非活動窗口時,該窗口將被移動到所有非頂層窗口的上方,但是位于所有頂層窗口的下方。如 果在調用SetWindowPos的時候pWndInsertAfter參數被設為&wndBottom,并且CWnd是一個頂層窗口,則該窗口 失去頂層狀態(WS_EX_BOTTOM風格被清除),并且系統將窗口放在Z軸次序的底部。 

            posted on 2009-05-29 15:51 isabc 閱讀(4645) 評論(0)  編輯 收藏 引用 所屬分類: VC界面

            廣告信息(免費廣告聯系)

            中文版MSDN:
            歡迎體驗

            久久久久久九九99精品| 久久久久久久精品成人热色戒| 国产成人精品三上悠亚久久| 久久久久久午夜精品| 亚洲精品高清国产一线久久| 国产综合久久久久久鬼色| 国产女人aaa级久久久级| 久久精品中文字幕有码| 一本色道久久99一综合| 国内精品久久九九国产精品| 久久精品18| 韩国免费A级毛片久久| 亚洲&#228;v永久无码精品天堂久久 | 嫩草伊人久久精品少妇AV| 久久久国产精品福利免费| 久久AV无码精品人妻糸列| 91久久精品电影| 国产成年无码久久久久毛片| 污污内射久久一区二区欧美日韩| 久久久精品一区二区三区| 久久这里只有精品首页| 久久强奷乱码老熟女网站| 久久精品欧美日韩精品| 欧美黑人激情性久久| 久久国产乱子伦精品免费午夜| 国内精品久久久久久99| 伊人久久无码中文字幕| 久久人妻无码中文字幕| 欧美激情精品久久久久久久九九九| 国产精品久久免费| 99久久人妻无码精品系列蜜桃| 久久久久免费精品国产| 亚洲色欲久久久久综合网 | 伊人久久大香线蕉av不变影院| 久久影视综合亚洲| 无码乱码观看精品久久| 久久久久亚洲AV成人网人人软件| 国产精品免费久久久久久久久| 久久亚洲国产欧洲精品一| 亚洲国产精品热久久| 久久精品国产只有精品2020|