亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? csdn_文檔中心_怎樣在一個(gè)一般窗口或是dialog上面使用分割窗口.htm

?? csdn10年中間經(jīng)典帖子
?? HTM
?? 第 1 頁 / 共 2 頁
字號(hào):
          <TD><B>&nbsp;&nbsp;&nbsp;&nbsp;怎樣在一個(gè)一般窗口或是Dialog上面使用分割窗口.</B>&nbsp;&nbsp;&nbsp;&nbsp;ecore(原作) 
          </TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR>
        <TR>
          <TD align=middle bgColor=#003399><FONT color=#ffffff>關(guān)鍵字</FONT></TD>
          <TD 
        width=500>&nbsp;&nbsp;&nbsp;&nbsp;怎樣在一個(gè)一般窗口或是Dialog上面使用分割窗口.</TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR></TBODY></TABLE><!--文章說明信息結(jié)束//-->
      <TABLE border=0 width=600>
        <TBODY>
        <TR>
          <TD align=left><BR>
            <P>&nbsp;&nbsp;&nbsp; 小弟初次貼文,水平不高,希望不要丟東西.呵呵.</P>
            <P>&nbsp;&nbsp;&nbsp; 
            大家都知道可以在一個(gè)CFrameWnd上面使用CSplitterWnd以做出分割窗口的效果(呵呵,順便,分割窗口可是MFC程序的一大特色.原來(Delphi沒有加上這個(gè)的支持之前),你只要看到了分割窗口,幾乎可以肯定是MFC的.(哈哈,當(dāng)然,也有人用SDK做一個(gè)出來,有這種閑的家伙么?呵呵,好象廢話太多了點(diǎn)).</P>
            <P>&nbsp;&nbsp;&nbsp; 
            可是現(xiàn)實(shí)中的情況是,有的時(shí)候我們要在一個(gè)一般的CWnd上面做一個(gè)SplitterWnd的效果.怎么辦呢?MS的SplitterWnd只可以用于CFrameWnd(好像也可以用于CView類,MS的文檔里說的).之所以有這個(gè)限制是因?yàn)門MD狗屎MS在SplitterWnd里面把所有要取Parent窗口的地方都設(shè)為CFrameWnd了.但實(shí)際上,它又沒有用到CFrameWnd的任何特性.所以我們應(yīng)該怎么做,好像是很明顯的了.就是去翻MS的SplitterWnd的源碼,把所有的用到了Parent的地方都改掉.啊!!!不是的,這還叫狗屁OOP?應(yīng)該是重載一個(gè)我們自己的.</P>
            <P>頭文件:</P>
            <P>// SplitWnd.h : implementation file<BR>// <BR>class CxSplitterWnd 
            : public CSplitterWnd<BR>{<BR>&nbsp;// 
            Construction<BR>&nbsp;public:<BR>&nbsp;CxSplitterWnd() 
            {};<BR>&nbsp;virtual ~CxSplitterWnd() {}; </P>
            <P>&nbsp;// Operations<BR>&nbsp;public: <BR>&nbsp;// 
            Overrides<BR>&nbsp;// ClassWizard generated virtual function 
            overrides<BR>&nbsp;<A 
            href="file://{{/">file://{{/</A>AFX_VIRTUAL(CxSplitterWnd)<BR>&nbsp;<A 
            href="file://}}/">file://}}/</A>AFX_VIRTUAL </P>
            <P>&nbsp;// Implementation<BR>&nbsp;public: <BR>&nbsp;// These are 
            the methods to be overridden<BR>&nbsp;virtual void StartTracking(int 
            ht); <BR>&nbsp;virtual CWnd* GetActivePane(int* pRow = NULL, int* 
            pCol = NULL);<BR>&nbsp;virtual void SetActivePane( int row, int col, 
            CWnd* pWnd = NULL ); <BR>&nbsp;virtual BOOL OnCommand(WPARAM wParam, 
            LPARAM lParam);<BR>&nbsp;virtual BOOL OnNotify( WPARAM wParam, 
            LPARAM lParam, LRESULT* pResult );<BR>&nbsp;virtual BOOL OnWndMsg( 
            UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult ); </P>
            <P>&nbsp;// Generated message map 
            functions<BR>&nbsp;protected:<BR>&nbsp;<A 
            href="file://}}AFX_MSG/">file://}}AFX_MSG/</A>(CxSplitterWnd)<BR>&nbsp;// 
            NOTE - the ClassWizard will add and remove member functions 
            here.<BR>&nbsp;<A 
            href="file://}}/">file://}}/</A>AFX_MSG<BR>&nbsp;DECLARE_MESSAGE_MAP()<BR>};<BR></P>
            <P>還有實(shí)現(xiàn)文件:</P>
            <P><BR>// SplitWnd.cpp : implementation file<BR>// <BR>#include 
            "stdafx.h"<BR>#include "SplitWnd.h" </P>
            <P>#ifdef _DEBUG<BR>#define new DEBUG_NEW<BR>#undef 
            THIS_FILE<BR>static char THIS_FILE[] = __FILE__;<BR>#endif </P>
            <P>// HitTest return values (values and spacing between values is 
            important)<BR>// Had to adopt this because it has module scope 
            <BR>enum HitTestValue<BR>{<BR>&nbsp;noHit = 0,<BR>&nbsp;vSplitterBox 
            = 1,<BR>&nbsp;hSplitterBox = 2,<BR>&nbsp;bothSplitterBox = 3, // 
            just for keyboard<BR>&nbsp;vSplitterBar1 = 
            101,<BR>&nbsp;vSplitterBar15 = 115,<BR>&nbsp;hSplitterBar1 = 
            201,<BR>&nbsp;hSplitterBar15 = 215,<BR>&nbsp;splitterIntersection1 = 
            301,<BR>&nbsp;splitterIntersection225 = 525<BR>}; </P>
            <P>/////////////////////////////////////////////////////////////////////////////<BR>// 
            CxSplitterWnd </P>
            <P>BEGIN_MESSAGE_MAP(CxSplitterWnd, CSplitterWnd)<BR><A 
            href="file://{{/">file://{{/</A>AFX_MSG_MAP(CxSplitterWnd)<BR>// 
            NOTE - the ClassWizard will add and remove mapping macros 
            here.<BR><A 
            href="file://}}/">file://}}/</A>AFX_MSG_MAP<BR>END_MESSAGE_MAP() 
</P>
            <P>CWnd* CxSplitterWnd::GetActivePane(int* pRow, int* 
            pCol)<BR>{<BR>&nbsp;ASSERT_VALID(this); <BR>&nbsp;CWnd* pView = 
            GetFocus();<BR>&nbsp;// make sure the pane is a child pane of the 
            splitter<BR>&nbsp;if (pView != NULL &amp;&amp; !IsChildPane(pView, 
            pRow, pCol))<BR>&nbsp;pView = NULL; <BR>&nbsp;return pView;<BR>} 
</P>
            <P>void CxSplitterWnd::SetActivePane( int row, int col, CWnd* 
            pWnd)<BR>{<BR>&nbsp;// set the focus to the pane<BR>&nbsp;CWnd* 
            pPane = pWnd == NULL ? GetPane(row, col) : 
            pWnd;<BR>&nbsp;pPane-&gt;SetFocus();<BR>} </P>
            <P>void CxSplitterWnd::StartTracking(int 
            ht)<BR>{<BR>ASSERT_VALID(this);<BR>&nbsp;if (ht == 
            noHit)<BR>&nbsp;&nbsp;return; <BR>&nbsp;// GetHitRect will restrict 
            'm_rectLimit' as appropriate<BR>&nbsp;GetInsideRect(m_rectLimit); 
            <BR>&nbsp;if (ht &gt;= splitterIntersection1 &amp;&amp; ht &lt;= 
            splitterIntersection225)<BR>&nbsp;{<BR>&nbsp;&nbsp;// split two 
            directions (two tracking rectangles)<BR>&nbsp;&nbsp;int row = (ht - 
            splitterIntersection1) / 15;<BR>&nbsp;&nbsp;int col = (ht - 
            splitterIntersection1) % 15; <BR>&nbsp;&nbsp;GetHitRect(row + 
            vSplitterBar1, m_rectTracker);<BR>&nbsp;&nbsp;int yTrackOffset = 
            m_ptTrackOffset.y;<BR>&nbsp;&nbsp;m_bTracking2 = 
            TRUE;<BR>&nbsp;&nbsp;GetHitRect(col + hSplitterBar1, 
            m_rectTracker2);<BR>&nbsp;&nbsp;m_ptTrackOffset.y = 
            yTrackOffset;<BR>&nbsp;}<BR>&nbsp;else if (ht == 
            bothSplitterBox)<BR>&nbsp;{<BR>&nbsp;&nbsp;// hit on splitter boxes 
            (for keyboard)<BR>&nbsp;&nbsp;GetHitRect(vSplitterBox, 
            m_rectTracker);<BR>&nbsp;&nbsp;int yTrackOffset = 
            m_ptTrackOffset.y;<BR>&nbsp;&nbsp;m_bTracking2 = 
            TRUE;<BR>&nbsp;&nbsp;GetHitRect(hSplitterBox, 
            m_rectTracker2);<BR>&nbsp;&nbsp;m_ptTrackOffset.y = yTrackOffset; 
            <BR>&nbsp;&nbsp;// center 
            it<BR>&nbsp;&nbsp;m_rectTracker.OffsetRect(0, 
            m_rectLimit.Height()/2);<BR>&nbsp;&nbsp;m_rectTracker2.OffsetRect(m_rectLimit.Width()/2, 
            0);<BR>&nbsp;}<BR>&nbsp;else<BR>&nbsp;{<BR>&nbsp;&nbsp;// only hit 
            one bar<BR>&nbsp;&nbsp;GetHitRect(ht, m_rectTracker);<BR>&nbsp;} 
</P>
            <P>&nbsp;// steal focus and 
            capture<BR>&nbsp;SetCapture();<BR>&nbsp;SetFocus(); <BR>&nbsp;// 
            make sure no updates are pending<BR>&nbsp;RedrawWindow(NULL, NULL, 
            RDW_ALLCHILDREN | RDW_UPDATENOW); <BR>&nbsp;// set tracking state 
            and appropriate cursor<BR>&nbsp;m_bTracking = 
            TRUE;<BR>&nbsp;OnInvertTracker(m_rectTracker);<BR>&nbsp;if 
            (m_bTracking2)<BR>&nbsp;OnInvertTracker(m_rectTracker2);<BR>&nbsp;m_htTrack 
            = ht;<BR>&nbsp;SetSplitCursor(ht);<BR>} </P>
            <P>/////////////////////////////////////////////////////////////////////////////<BR>// 
            CSplitterWnd command routing <BR>BOOL 
            CxSplitterWnd::OnCommand(WPARAM wParam, LPARAM 
            lParam)<BR>{<BR>&nbsp;if (CWnd::OnCommand(wParam, 
            lParam))<BR>&nbsp;return TRUE; <BR>&nbsp;// route commands to the 
            splitter to the parent frame window<BR>&nbsp;return 
            GetParent()-&gt;SendMessage(WM_COMMAND, wParam, lParam);<BR>} </P>
            <P>BOOL CxSplitterWnd::OnNotify( WPARAM wParam, LPARAM lParam, 
            LRESULT* pResult )<BR>{<BR>&nbsp;if (CWnd::OnNotify(wParam, lParam, 
            pResult))<BR>&nbsp;return TRUE; <BR>&nbsp;// route commands to the 
            splitter to the parent frame window<BR>&nbsp;*pResult = 
            GetParent()-&gt;SendMessage(WM_NOTIFY, wParam, 
            lParam);<BR>&nbsp;return TRUE;<BR>} </P>
            <P>BOOL CxSplitterWnd::OnWndMsg(UINT message, WPARAM wParam, LPARAM 
            lParam, LRESULT* pResult)<BR>{ <BR>&nbsp;// The code line below is 
            necessary if using CxSplitterWnd in a regular dll<BR>&nbsp;// 
            AFX_MANAGE_STATE(AfxGetStaticModuleState()); <BR>&nbsp;return 
            CWnd::OnWndMsg(message, wParam, lParam, pResult);<BR>}<BR></P>
            <P>把這個(gè)文件給包含進(jìn)你的工程,就可以用CxSplitterWnd了.</P>
            <P>&nbsp;</P>
            <P>&nbsp;</P>
            <P>&nbsp;</P>
            <P>&nbsp;</P>
            <P>&nbsp;</P><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0 
width=770>
  <TBODY>
  <TR bgColor=#006699>
    <TD align=middle bgColor=#006699 id=white><FONT 
    color=#ffffff>對(duì)該文的評(píng)論</FONT></TD>
    <TD align=middle>
      <SCRIPT 
      src="CSDN_文檔中心_怎樣在一個(gè)一般窗口或是Dialog上面使用分割窗口.files/readnum.htm"></SCRIPT>
    </TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TH bgColor=#006699 id=white><FONT 
color=#ffffff>我要評(píng)論</FONT></TH></TR></TBODY></TABLE></DIV>
<DIV align=center>
<TABLE border=0 width=770>
  <TBODY>
  <TR>
    <TD>你沒有登陸,無法發(fā)表評(píng)論。 請(qǐng)先<A 
      href="http://www.csdn.net/member/login.asp?from=/Develop/read_article.asp?id=2516">登陸</A> 
      <A 
href="http://www.csdn.net/expert/zc.asp">我要注冊(cè)</A><BR></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>

<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
  <TBODY>
  <TR align=middle>
    <TD height=10 vAlign=bottom><A 
      href="http://www.csdn.net/intro/intro.asp?id=2">網(wǎng)站簡(jiǎn)介</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=5">廣告服務(wù)</A> - <A 
      href="http://www.csdn.net/map/map.shtm">網(wǎng)站地圖</A> - <A 
      href="http://www.csdn.net/help/help.asp">幫助信息</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=2">聯(lián)系方式</A> - <A 
      href="http://www.csdn.net/english">English</A> </TD>
    <TD align=middle rowSpan=3><A 
      href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG 
      border=0 height=48 
      src="CSDN_文檔中心_怎樣在一個(gè)一般窗口或是Dialog上面使用分割窗口.files/biaoshi.gif" 
    width=40></A></TD></TR>
  <TR align=middle>
    <TD vAlign=top>百聯(lián)美達(dá)美公司 版權(quán)所有 京ICP證020026號(hào)</TD></TR>
  <TR align=middle>
    <TD vAlign=top><FONT face=Verdana>Copyright &copy; CSDN.net, Inc. All rights 
      reserved</FONT></TD></TR>
  <TR>
    <TD height=15></TD>
    <TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--內(nèi)容結(jié)束//--><!--結(jié)束//--></BODY></HTML>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区欧美日韩| 国产精品久久久久影院老司| 91亚洲国产成人精品一区二三| 久久精品国产久精国产| 人人精品人人爱| 午夜电影一区二区三区| 婷婷一区二区三区| 日韩av一区二区在线影视| 爽好多水快深点欧美视频| 日韩精品福利网| 麻豆91免费看| 国内外精品视频| 国产99精品视频| 99r国产精品| 制服丝袜亚洲色图| 日韩精品一区二区三区视频在线观看| 精品国产乱子伦一区| 国产无人区一区二区三区| 中文字幕第一页久久| 亚洲欧美日韩国产另类专区| 亚洲女性喷水在线观看一区| 亚洲一区二区三区免费视频| 日韩av高清在线观看| 国产夫妻精品视频| 色综合欧美在线| 日韩亚洲电影在线| 国产午夜精品一区二区三区嫩草 | 久久你懂得1024| 日本一区二区三区久久久久久久久不| 国产精品久久一卡二卡| 午夜成人免费视频| 国产成人av福利| 精品视频123区在线观看| 精品美女被调教视频大全网站| 国产日韩欧美亚洲| 午夜久久电影网| 成人免费视频app| 欧美精品久久99久久在免费线| 国产三级一区二区三区| 亚洲国产精品视频| 91丨porny丨最新| 日韩精品中文字幕一区二区三区 | 懂色av中文一区二区三区| 91在线无精精品入口| 91精品黄色片免费大全| 国产精品久久久久久福利一牛影视 | 亚洲精品乱码久久久久久黑人| 日韩不卡免费视频| 97精品久久久午夜一区二区三区| 91精品国产全国免费观看 | 欧美丝袜丝nylons| 中文字幕第一区| 久久福利资源站| 欧美精品日韩一区| 亚洲男女一区二区三区| 国产一区二区三区久久悠悠色av| 欧美日韩一区小说| 亚洲精品免费一二三区| 国产成人亚洲综合a∨猫咪| 欧美一级黄色片| 亚洲成人av一区二区| 色综合久久久久久久久久久| 久久精品一区蜜桃臀影院| 日本中文一区二区三区| 欧美视频一区二区| 亚洲精品久久嫩草网站秘色| 成人三级在线视频| 国产精品毛片高清在线完整版| 久久av中文字幕片| 91精品国产综合久久精品麻豆 | 欧洲精品中文字幕| 日韩美女啊v在线免费观看| 成人久久18免费网站麻豆| 精品国产一区二区精华| 美女视频黄a大片欧美| 日韩一级大片在线| 美女国产一区二区三区| 日韩欧美中文字幕一区| 奇米色777欧美一区二区| 日韩欧美一区电影| 久久福利资源站| 久久精品一区二区三区av| 国产乱子伦视频一区二区三区 | 亚洲成人av资源| 欧美美女喷水视频| 免费在线观看视频一区| 日韩精品中文字幕一区二区三区| 精品亚洲国产成人av制服丝袜 | 欧美高清一级片在线| 天天亚洲美女在线视频| 欧美大片一区二区三区| 国产精品自拍毛片| 综合自拍亚洲综合图不卡区| 色综合婷婷久久| 国产一区二区三区av电影| 欧美大胆人体bbbb| 国产成人精品亚洲777人妖| 日本一区二区三区四区在线视频| 97久久精品人人爽人人爽蜜臀| 一级特黄大欧美久久久| 欧美一级精品大片| 成人黄色网址在线观看| 依依成人精品视频| 日韩一区二区三区四区五区六区| 久久99精品久久久久久动态图| 国产女人aaa级久久久级| 91国偷自产一区二区三区成为亚洲经典 | 日韩女优av电影在线观看| 国产精品888| 亚洲乱码国产乱码精品精可以看| 欧美猛男男办公室激情| 国产成人在线影院| 亚洲国产一区二区三区| 久久精品亚洲精品国产欧美| 色噜噜狠狠成人网p站| 九九精品视频在线看| 亚洲三级免费观看| 精品少妇一区二区三区日产乱码| 成人app软件下载大全免费| 视频一区视频二区中文| 18欧美乱大交hd1984| 日韩一级片网址| 色激情天天射综合网| 国产伦精品一区二区三区视频青涩 | 首页国产欧美久久| 国产精品国产三级国产普通话三级| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 久久精品国产99| 亚洲精品国产视频| 国产精品午夜在线| 欧美成人r级一区二区三区| 在线观看免费亚洲| 成人毛片视频在线观看| 激情都市一区二区| 蜜桃一区二区三区在线| 亚洲成人资源网| 国产精品毛片a∨一区二区三区| 日韩视频在线你懂得| 欧美亚洲综合另类| 91一区二区三区在线播放| 国产一区二区免费视频| 秋霞av亚洲一区二区三| 天天色图综合网| 亚洲444eee在线观看| 亚洲柠檬福利资源导航| 国产精品五月天| 日本一区免费视频| 久久精品欧美日韩| 久久亚洲欧美国产精品乐播| 日韩小视频在线观看专区| 欧美美女视频在线观看| 国产福利一区二区三区视频| 国产一区二区主播在线| 国产一区在线看| 国产成人精品www牛牛影视| 国产很黄免费观看久久| 国产成人亚洲综合色影视| 成人av在线资源网| eeuss鲁片一区二区三区在线观看| 国产成+人+日韩+欧美+亚洲| 国产成人午夜片在线观看高清观看| 国产精品1区二区.| 成人三级在线视频| 一本到高清视频免费精品| 91一区在线观看| 精品视频在线免费| 日韩一区二区高清| 精品国产凹凸成av人网站| 偷拍日韩校园综合在线| 五月激情丁香一区二区三区| 日本不卡一区二区三区| 久久99精品国产麻豆婷婷洗澡| 国产精品一线二线三线| 91天堂素人约啪| 欧美精品v日韩精品v韩国精品v| 精品少妇一区二区| 国产精品卡一卡二卡三| 一区二区三区在线观看网站| 日本亚洲视频在线| 国产成人一区在线| 欧洲国内综合视频| 精品黑人一区二区三区久久| 国产精品第四页| 日精品一区二区三区| 成人性生交大片免费看中文| 在线视频你懂得一区| 日韩欧美专区在线| 亚洲欧美日本韩国| 老鸭窝一区二区久久精品| av综合在线播放| 欧美电影免费观看高清完整版在线 | 国产成人免费高清| 精品视频在线免费| 国产精品欧美一区二区三区| 亚洲成人一二三| 岛国一区二区三区| 日韩手机在线导航| 一区二区三区国产豹纹内裤在线| 久久91精品久久久久久秒播| 日本高清免费不卡视频|