1樓:lll北冥有魚
使用setwindowpos函式
cwnd::setwindowposbool setwindowpos( const cwnd* pwndinsertafter, int x, int y, int cx, int cy,uint nflags )。返回值如果函式成功,則返回非零值;否則返回0。
注意:這個視窗不是活動視窗。應用程式不能啟用乙個非活動視窗但同時又不把它帶到z軸次序的頂部。
應用程式可以沒有任何限制地改變活動視窗的z軸次序。非頂層視窗可能擁有乙個頂層視窗,但是反之則不成立。任何被頂層視窗擁有的視窗(例如對話方塊)都將自己變為頂層視窗,以確保所有被擁有的視窗位於它們的擁有者上方。
在windows 3.1或更新的版本中,可以將視窗移動到z軸次序的頂部,並通過設定它們的ws_ex_topmost風格而將之鎖定在那裡。
使用movewindow函式
void cwnd::movewindow( int x, int y, int nwidth, int nheight, bool brepaint = true );
void cwnd::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引數是相對於螢幕的左上角的。
對於子物件,它們是相對于父視窗客戶區的左上角的。
2樓:匿名使用者
第一種方法:使用setwindowpos函式
cwnd::setwindowposbool setwindowpos( const cwnd* pwndinsertafter, int x, int y, int cx, int cy,uint nflags );
返回值如果函式成功,則返回非零值;否則返回0。
說明呼叫這個成員函式以改變子視窗、彈出視窗和頂層視窗的大小、位置和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軸次序的底部 。
引數pwndinsertafter
標識了在z軸次序上位於這個cwnd物件之前的cwnd物件。這個引數可以是指向cwnd物件的指標,也可以是指向下列值的指標:
wndbottom 將視窗放在z軸次序的底部。如果這個cwnd是乙個頂層視窗,則視窗將失去它的頂層狀態;系統將這個視窗放在其它所有視窗的底部。
wndtop 將視窗放在z軸次序的頂部。
wndtopmost 將視窗放在所有非頂層視窗的上面。這個視窗將保持它的頂層位置,即使它失去了活動狀態。
wndnotopmost 將視窗重新定位到所有非頂層視窗的頂部(這意味著在所有的頂層視窗之下)。這個標誌對那些已經是非頂層視窗的視窗沒有作用。有關這個函式以及這些引數的使用規則參見說明部分。
x指定了視窗左邊的新位置。
y指定了視窗頂部的新位置。
cx指定了視窗的新寬度。
cy指定了視窗的新高度。
nflags指定了大小和位置選項。這個引數可以是下列值的組合:
swp_drawframe 圍繞視窗畫出邊框(在建立視窗的時候定義)。
swp_framechanged 向視窗傳送一條wm_nccalcsize訊息,即使視窗的大小不會改變。如果沒有指定這個標誌,則僅當視窗的大小發生變化時才傳送wm_nccalcsize訊息。
swp_hidewindow 隱藏視窗。
swp_noactivate 不啟用視窗。如果沒有設定這個標誌,則視窗將被啟用並移動到頂層或非頂層視窗組(依賴於pwndinsertafter引數的設定)的頂部。
swp_nocopybits 廢棄這個客戶區的內容。如果沒有指定這個引數,則客戶區的有效內容將被儲存,並在視窗的大小或位置改變以後被拷貝回客戶區。
swp_nomove 保持當前的位置(忽略x和y引數)。
swp_noownerzorder 不改變擁有者視窗在z軸次序上的位置。
swp_noredraw 不重畫變化。如果設定了這個標誌,則不發生任何種類的變化。這適用於客戶區、非客戶區(包括標題和滾動條)以及被移動視窗覆蓋的父視窗的任何部分。
當這個標誌被設定的時候,應用程式必須明確地無效或重畫要重畫的視窗和父視窗的任何部分。
swp_noreposition 與swp_noownerzorder相同。
swp_nosendchanging 防止視窗接收wm_windowposchanging訊息。
swp_nosize 保持當前的大小(忽略cx和cy引數)。
swp_nozorder 保持當前的次序(忽略pwndinsertafter)。
swp_showwindow 顯示視窗。
第二種方法:使用movewindow函式
void cwnd::movewindow( int x, int y, int nwidth, int nheight, bool brepaint = true );
void cwnd::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處理函式中可以用最小或最大值來代替這些值。
在VS2019中的MFC,怎麼把編輯框中的文字寫入
cfile只能以二進位制形式進行讀寫。如果輸入字元的話,最好還是用cstdiofile類的writestring方法。輸出中文的方法可參考我空間的文章http hi.baidu.這是因為cstring是unicode字元,而txt是ansi字元,把cstring直接寫到txt中就會出現亂碼,推薦用i...
怎麼在ecel中自動求出和?怎麼設定啊
一 在excel工作表中可以用sum函式或 符號進行求和運算。如 a1 a2 a3 b1 b2 b3 用sum函式可以寫成 sum a1 b3 二 sum函式的定義 返回某一單元格區域中所有數字之和。語法sum number1,number2,number1,number2,為 1 到 30 個需要...
在中如何改變頁首和頁尾的大小,在Word中如何改變頁首和頁尾的大小
可以在頁面設定對話方塊中改變頁首和頁尾的大小。1 單擊頁面布局選項卡右下角如圖所示的按鈕 2 彈出頁面設定對話方塊,選擇版式選項卡,在頁首 頁尾的輸入框中輸入所需要的數值即可,如圖所示。03版的可以這樣做。檔案 頁面設定 版式 在這裡調整頁首頁尾,可大可小,小可至0.希望能夠幫助到你。頁首頁尾裡面的...