• <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>
            Dragon  
            Dragon
            日歷
            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345
            統(tǒng)計(jì)
            • 隨筆 - 58
            • 文章 - 0
            • 評(píng)論 - 55
            • 引用 - 0

            導(dǎo)航

            常用鏈接

            留言簿(3)

            隨筆分類(58)

            隨筆檔案(58)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

             

            手動(dòng)創(chuàng)建控件的tab順序:
                一般手動(dòng)創(chuàng)建的控件(在其它可視化控件存在的情況下)按tab鍵是不會(huì)有焦點(diǎn)的!只要在創(chuàng)建控件的函數(shù)Create時(shí)
            加WS_TABSTOP屬性就會(huì)有了!(這個(gè)一定要記得要加)
                若你想令它成為當(dāng)窗口彈出來時(shí)成為第一個(gè)擁有焦點(diǎn)的控件,只要你用下面的函數(shù)就可以:
                myButton.SetWindowPos(&wndTop,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE|SWP_NOACTIVATE);
            SetWindowPos函數(shù)的介紹:
            BOOL SetWindowPos (
            const CWnd* pWndInsertAfter,
            int x,
            int y,
            int cx,
            int cy,
            UINT nFlags );

            這個(gè)方法改變子窗口,(右擊)彈出窗口,頂級(jí)窗口的大小,位置和Z順序!
            從我的看法來覺得,Z順序是相對(duì)顯示器平面的垂直方向窗口顯示的順序!

            參數(shù):
            pWndInsertAfter
            在z序中的位于被置位的窗口前一個(gè)窗口句柄。該參數(shù)必須為一個(gè)CWnd指針,或下列值的地址(因?yàn)閰?shù)是指針)之一:
            wndBottom 將窗口置于Z序的底部;如果CWnd是一個(gè)頂層窗口,這個(gè)窗口將失去頂級(jí)位置,它將放在所有窗口的底部!
            wndTop 將窗口置于Z序的頂部
            wndTopMost 將窗口置于所有非頂層窗口之上。即使窗口未被激活窗口也將保持頂級(jí)位置。
            wndNoTopMost 將窗口置于所有非頂層窗口之上(即在所有頂層窗口之后)。如果窗口已經(jīng)是非頂層窗口則該標(biāo)志不起作用。
            wndTop就是要將它放到Z順序的首位置;


            x: 以客戶坐標(biāo)指定窗口新位置的左邊界.
            Y: 以客戶坐標(biāo)指定窗口新位置的頂邊界.
            cx:以像素指定窗口的新的寬度.
            cy:以像素指定窗口的新的高度.

            uFlags:窗口尺寸和定位的標(biāo)志。該參數(shù)可以是下列值的組合:
              SWP_ASNCWINDOWPOS:如果調(diào)用進(jìn)程不擁有窗口,系統(tǒng)會(huì)向擁有窗口的線程發(fā)出需求。這就防止調(diào)用線程在其他線程處理需求的時(shí)候發(fā)生死鎖。
              SWP_DEFERERASE:防止產(chǎn)生WM_SYNCPAINT消息。
              SWP_DRAWFRAME:在窗口周圍畫一個(gè)邊框(定義在窗口類描述中)。
              SWP_FRAMECHANGED:給窗口發(fā)送WM_NCCALCSIZE消息,即使窗口尺寸沒有改變也會(huì)發(fā)送該消息。如果未指定這個(gè)標(biāo)志,只有在改變了窗口尺寸時(shí)才發(fā)送WM_NCCALCSIZE。
              SWP_HIDEWINDOW;隱藏窗口。
              SWP_NOACTIVATE:不激活窗口。如果未設(shè)置標(biāo)志,則窗口被激活,并被設(shè)置到其他最高級(jí)窗口或非最高級(jí)組的頂部(根據(jù)參數(shù)hWndlnsertAfter設(shè)置)。
              SWP_NOCOPYBITS:清除客戶區(qū)的所有內(nèi)容。如果未設(shè)置該標(biāo)志,客戶區(qū)的有效內(nèi)容被保存并且在窗口尺寸更新和重定位后拷貝回客戶區(qū)。
              SWP_NOMOVE:維持當(dāng)前位置(忽略X和Y參數(shù))。
              SWP_NOOWNERZORDER:不改變z序中的所有者窗口的位置。
              SWP_NOREDRAW:不重畫改變的內(nèi)容。如果設(shè)置了這個(gè)標(biāo)志,則不發(fā)生任何重畫動(dòng)作。適用于客戶區(qū)和非客戶區(qū)(包括標(biāo)題欄和滾動(dòng)條)和任何由于窗回移動(dòng)而露出的父窗口的所有部分。如果設(shè)置了這個(gè)標(biāo)志,應(yīng)用程序必須明確地使窗口無效并區(qū)重畫窗口的任何部分和父窗口需要重畫的部分。
              SWP_NOREPOSITION;與SWP_NOOWNERZORDER標(biāo)志相同。
              SWP_NOSENDCHANGING:防止窗口接收WM_WINDOWPOSCHANGING消息。
              SWP_NOSIZE:維持當(dāng)前尺寸(忽略cx和cy參數(shù))。
              SWP_NOZORDER:維持當(dāng)前Z序(忽略pWndInsertAfter參數(shù))。
              SWP_SHOWWINDOW:顯示窗口。
              返回值:如果函數(shù)成功,返回值為非零;如果函數(shù)失敗,返回值為零。若想獲得更多錯(cuò)誤消息,請(qǐng)調(diào)用GetLastError函數(shù)。
              備注:如果設(shè)置了SWP_SHOWWINDOW和SWP_HIDEWINDOW標(biāo)志,則窗口不能被移動(dòng)和改變大小。如果使用SetWindowLoog改變了窗口的某些數(shù)據(jù),則必須調(diào)用函數(shù)SetWindowPos來作真正的改變。使用下列的組合標(biāo)志:SWP_NOMOVE|SWP_NOSIZE|SWP_FRAMECHANGED。
              有兩種方法將窗口設(shè)為最頂層窗口:一種是將參數(shù)pWndInsertAfter設(shè)置為wndTopMost并確保沒有設(shè)置SWP_NOZORDER標(biāo)志;另一種是設(shè)置窗口在Z序中的位置以使其在其他存在的窗口之上。當(dāng)一個(gè)窗口被置為最頂層窗口時(shí),屬于它的所有窗口均為最頂層窗口,而它的所有者的z序并不改變。
              如果wndTopMost和wndNoTopMost標(biāo)志均未指定,即應(yīng)用程序要求窗口在激活的同時(shí)改變其在Z序中的位置時(shí),在參數(shù)hWndinsertAfter中指定的值只有在下列條件中才使用:
              在hWndlnsertAfter參數(shù)中沒有設(shè)定wndNoTopMost和wndTopMost標(biāo)志。
              由hWnd參數(shù)標(biāo)識(shí)的窗口不是激活窗口。
              如果未將一個(gè)非激活窗口設(shè)定到z序的頂端,應(yīng)用程序不能激活該窗口。應(yīng)用程序可以無任何限制地改變被激活窗口在Z序中的位置,或激活一個(gè)窗口并將其移到最高級(jí)窗口的頂部或非最高級(jí)窗口的頂部。
              如果一個(gè)頂層窗口被重定位到z序的底部(wndBottom)或在任何非最高序的窗口之后,該窗口就不再是最頂層窗口。當(dāng)一個(gè)最頂層窗口被置為非最頂級(jí),則它的所有者窗口和所屬者窗口均為非最頂層窗口。
              一個(gè)非最頂端窗口可以擁有一個(gè)最頂端窗口,但反之則不可以。任何屬于頂層窗口的窗口(例如一個(gè)對(duì)話框)本身就被置為頂層窗口,以確保所有被屬窗口都在它們的所有者之上。
              如果應(yīng)用程序不在前臺(tái),但應(yīng)該位于前臺(tái),就應(yīng)調(diào)用SetForegroundWindow函數(shù)來設(shè)置。


            我手動(dòng)創(chuàng)建了幾個(gè)控件,然后調(diào)用下面的函數(shù)進(jìn)行設(shè)置tab順序!未設(shè)置之前是按控件的創(chuàng)建順序?yàn)閠ab順序:
            void CTest4Dlg::OnSetOrder()
            {
             CWnd * pNum1=GetDlgItem(IDC_NUM1);
             CWnd * pNum2=GetDlgItem(IDC_NUM2);
             CWnd * pResult=GetDlgItem(IDC_RESULT);
             CWnd * pEqual=GetDlgItem(IDC_EQUAL);
             CWnd * pClear=GetDlgItem(IDC_CLEAR);
             CWnd * pSetOrder=GetDlgItem(IDC_SETORDER);
             EquBtn.SetWindowPos(&wndTop,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE|SWP_NOACTIVATE);//wndTop是設(shè)置為Z順序的最頂部!
             Num2.SetWindowPos(pEqual,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE|SWP_NOACTIVATE);
             SetOrder.SetWindowPos(pNum2,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE|SWP_NOACTIVATE);
             Result.SetWindowPos(pSetOrder,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE|SWP_NOACTIVATE);
             Clear.SetWindowPos(pResult,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE|SWP_NOACTIVATE);
            }

            開始時(shí)它的tab順序是這樣的,如下圖:

            當(dāng)按了設(shè)置按鈕(OnSetOrder)后,如下圖:

            posted on 2008-10-13 10:10 Dragon 閱讀(3585) 評(píng)論(1)  編輯 收藏 引用 所屬分類: VC
            評(píng)論:
             
            Copyright © Dragon Powered by: 博客園 模板提供:滬江博客
            久久噜噜电影你懂的| 日产精品久久久一区二区| 色8久久人人97超碰香蕉987| 国产AV影片久久久久久| 亚洲人成网站999久久久综合| 国产成人精品综合久久久| 97久久婷婷五月综合色d啪蜜芽| 久久精品国产福利国产秒| 99久久国产主播综合精品 | 亚洲国产精品综合久久网络 | 成人国内精品久久久久影院| 国产高潮国产高潮久久久| 国产精品一久久香蕉国产线看观看 | 久久精品人人槡人妻人人玩AV| 国内精品久久久人妻中文字幕| 国产人久久人人人人爽| 亚洲性久久久影院| 久久综合久久综合久久综合| 精品久久久久久久久免费影院| 国内精品伊人久久久久网站| 久久久精品久久久久久| 午夜精品久久影院蜜桃| 午夜精品久久久久久毛片| 狠狠色丁香婷婷综合久久来来去 | 一本久久免费视频| 国产美女久久久| 久久婷婷五月综合97色直播| 国产成人精品久久亚洲高清不卡| 亚洲狠狠婷婷综合久久蜜芽| 香蕉久久AⅤ一区二区三区| 久久精品中文字幕第23页| 久久国产乱子精品免费女| 国内精品人妻无码久久久影院 | 国产精品欧美亚洲韩国日本久久| 久久国产精品一国产精品金尊| 亚洲国产精品无码久久一区二区| 久久国产AVJUST麻豆| 久久精品免费一区二区| 久久久久青草线蕉综合超碰| 亚洲精品乱码久久久久久蜜桃图片| 日本五月天婷久久网站|