⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wg__scrollbar_8cpp-source.html

📁 一个小巧的嵌入式图形系统wGUI, 可以用VC编译
💻 HTML
📖 第 1 页 / 共 2 页
字号:
00138      Painter.<a class="code" href="classwGui_1_1CPainter.html#a4">DrawVLine</a>(SubRect.<a class="code" href="classwGui_1_1CRect.html#a9">Top</a>(), SubRect.<a class="code" href="classwGui_1_1CRect.html#a12">Bottom</a>(), SubRect.<a class="code" href="classwGui_1_1CRect.html#a11">Right</a>(), COLOR_DARKGRAY);00139 }00140 00141 <a name="l00142"></a><a class="code" href="classwGui_1_1CScrollBar.html#a8">00142</a> <span class="keywordtype">void</span> CScrollBar::SetWindowRect(<span class="keyword">const</span> <a class="code" href="classwGui_1_1CRect.html">CRect</a>&amp; WindowRect)00143 {00144      CWindow::SetWindowRect(WindowRect);00145      <span class="comment">// Resposition the thumb rect and the button controls</span>00146      <a class="code" href="classwGui_1_1CScrollBar.html#a5">SetPosition</a>(m_iPosition);00147      <span class="keywordflow">switch</span> (m_ScrollBarType)00148      {00149      <span class="keywordflow">case</span> <a class="code" href="classwGui_1_1CScrollBar.html#s2s0">VERTICAL</a>:00150      {00151           m_ThumbRect.<a class="code" href="classwGui_1_1CRect.html#a6">SetLeft</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a10">Left</a>());00152           m_ThumbRect.<a class="code" href="classwGui_1_1CRect.html#a7">SetRight</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a11">Right</a>());00153           m_pBtnUpLeft-&gt;<a class="code" href="classwGui_1_1CWindow.html#a2">SetWindowRect</a>(<a class="code" href="classwGui_1_1CRect.html">CRect</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a13">TopLeft</a>(),00154                <a class="code" href="classwGui_1_1CPoint.html">CPoint</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a11">Right</a>(), <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a9">Top</a>() + <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a23">Width</a>())));00155           m_pBtnDownRight-&gt;<a class="code" href="classwGui_1_1CWindow.html#a2">SetWindowRect</a>(<a class="code" href="classwGui_1_1CRect.html">CRect</a>(00156                <a class="code" href="classwGui_1_1CPoint.html">CPoint</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a10">Left</a>(), <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a12">Bottom</a>() - <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a23">Width</a>()), <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a16">BottomRight</a>()));00157           <a class="code" href="classwGui_1_1CWindow.html#n3">m_ClientRect</a>.<a class="code" href="classwGui_1_1CRect.html#a5">SetTop</a>(m_pBtnUpLeft-&gt;<a class="code" href="classwGui_1_1CWindow.html#a3">GetWindowRect</a>().<a class="code" href="classwGui_1_1CRect.html#a24">Height</a>() + 1);00158           <a class="code" href="classwGui_1_1CWindow.html#n3">m_ClientRect</a>.<a class="code" href="classwGui_1_1CRect.html#a8">SetBottom</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a24">Height</a>() - m_pBtnUpLeft-&gt;<a class="code" href="classwGui_1_1CWindow.html#a3">GetWindowRect</a>().<a class="code" href="classwGui_1_1CRect.html#a24">Height</a>() - 1);00159           <span class="keywordflow">break</span>;00160      }00161      <span class="keywordflow">case</span> <a class="code" href="classwGui_1_1CScrollBar.html#s2s1">HORIZONTAL</a>:00162      {00163           m_ThumbRect.<a class="code" href="classwGui_1_1CRect.html#a5">SetTop</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a9">Top</a>());00164           m_ThumbRect.<a class="code" href="classwGui_1_1CRect.html#a8">SetBottom</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a12">Bottom</a>());00165           m_pBtnUpLeft-&gt;<a class="code" href="classwGui_1_1CWindow.html#a2">SetWindowRect</a>(<a class="code" href="classwGui_1_1CRect.html">CRect</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a13">TopLeft</a>(),00166                <a class="code" href="classwGui_1_1CPoint.html">CPoint</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a10">Left</a>() + <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a24">Height</a>(), <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a12">Bottom</a>())));00167           m_pBtnDownRight-&gt;<a class="code" href="classwGui_1_1CWindow.html#a2">SetWindowRect</a>(<a class="code" href="classwGui_1_1CRect.html">CRect</a>(00168                <a class="code" href="classwGui_1_1CPoint.html">CPoint</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a11">Right</a>() - <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a24">Height</a>(), <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a9">Top</a>()), <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a16">BottomRight</a>()));00169           <a class="code" href="classwGui_1_1CWindow.html#n3">m_ClientRect</a>.<a class="code" href="classwGui_1_1CRect.html#a6">SetLeft</a>(m_pBtnUpLeft-&gt;<a class="code" href="classwGui_1_1CWindow.html#a3">GetWindowRect</a>().<a class="code" href="classwGui_1_1CRect.html#a23">Width</a>() + 1);00170           <a class="code" href="classwGui_1_1CWindow.html#n3">m_ClientRect</a>.<a class="code" href="classwGui_1_1CRect.html#a7">SetRight</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a23">Width</a>() - m_pBtnUpLeft-&gt;<a class="code" href="classwGui_1_1CWindow.html#a3">GetWindowRect</a>().<a class="code" href="classwGui_1_1CRect.html#a23">Width</a>() - 1);00171           <span class="keywordflow">break</span>;00172      }00173      <span class="keywordflow">default</span>:00174           <span class="keywordflow">throw</span>(<a class="code" href="classwGui_1_1Wg__Ex__App.html">Wg_Ex_App</a>(<span class="stringliteral">"CScrollBar::SetWindowRect:  Unrecognized ScrollBar Type."</span>));00175           <span class="keywordflow">break</span>;00176      }00177 }00178 00179 <a name="l00180"></a><a class="code" href="classwGui_1_1CScrollBar.html#a9">00180</a> <span class="keywordtype">void</span> CScrollBar::MoveWindow(<span class="keyword">const</span> <a class="code" href="classwGui_1_1CPoint.html">CPoint</a>&amp; MoveDistance)00181 {00182      CWindow::MoveWindow(MoveDistance);00183      m_ThumbRect = m_ThumbRect + MoveDistance;00184 }00185 00186 <a name="l00187"></a><a class="code" href="classwGui_1_1CScrollBar.html#a10">00187</a> <span class="keywordtype">bool</span> CScrollBar::OnMouseButtonDown(<a class="code" href="classwGui_1_1CPoint.html">CPoint</a> Point, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Button)00188 {00189      <span class="keywordtype">bool</span> bResult = <span class="keyword">false</span>;00190 00191      <span class="keywordflow">if</span> (! CWindow::OnMouseButtonDown(Point, Button) &amp;&amp; <a class="code" href="classwGui_1_1CWindow.html#n7">m_bVisible</a> &amp;&amp; (m_ThumbRect.<a class="code" href="classwGui_1_1CRect.html#a32">HitTest</a>(Point) == CRect::RELPOS_INSIDE) &amp;&amp;00192           (Button == CMouseMessage::LEFT))00193      {00194           m_bDragging = <span class="keyword">true</span>;00195           bResult = <span class="keyword">true</span>;00196      }00197 00198      <span class="keywordflow">return</span> bResult;00199 }00200 00201 <a name="l00202"></a><a class="code" href="classwGui_1_1CScrollBar.html#a11">00202</a> <span class="keywordtype">bool</span> CScrollBar::HandleMessage(<a class="code" href="classwGui_1_1CMessage.html">CMessage</a>* pMessage)00203 {00204      <span class="keywordtype">bool</span> bHandled = <span class="keyword">false</span>;00205 00206      <span class="keywordflow">if</span> (pMessage)00207      {00208           <span class="keywordflow">switch</span>(pMessage-&gt;<a class="code" href="classwGui_1_1CMessage.html#a2">MessageType</a>())00209           {00210           <span class="keywordflow">case</span> CMessage::MOUSE_BUTTONUP:00211           {00212                <a class="code" href="classwGui_1_1CMouseMessage.html">CMouseMessage</a>* pMouseMessage = dynamic_cast&lt;CMouseMessage*&gt;(pMessage);00213                <span class="keywordflow">if</span> (pMouseMessage &amp;&amp; m_bDragging &amp;&amp; pMouseMessage-&gt;<a class="code" href="classwGui_1_1CMouseMessage.html#m2">Button</a> == CMouseMessage::LEFT)00214                {00215                     m_bDragging = <span class="keyword">false</span>;00216                     CMessageServer::Instance().QueueMessage(<span class="keyword">new</span> TIntMessage(CMessage::CTRL_VALUECHANGE, <a class="code" href="classwGui_1_1CWindow.html#n4">m_pParentWindow</a>, <span class="keyword">this</span>, m_iPosition));00217                     bHandled = <span class="keyword">true</span>;00218                }00219                <span class="keywordflow">break</span>;00220           }00221           <span class="keywordflow">case</span> CMessage::MOUSE_MOVE:00222                <span class="keywordflow">if</span> (m_bDragging)00223                {00224                     <a class="code" href="classwGui_1_1CMouseMessage.html">CMouseMessage</a>* pMouseMessage = dynamic_cast&lt;CMouseMessage*&gt;(pMessage);00225                     <span class="keywordflow">if</span> (pMouseMessage)00226                     {00227                          <span class="keywordtype">int</span> iOldPosition = m_iPosition;00228                          <span class="keywordflow">switch</span> (m_ScrollBarType)00229                          {00230                          <span class="keywordflow">case</span> <a class="code" href="classwGui_1_1CScrollBar.html#s2s0">VERTICAL</a>:00231                               <a class="code" href="classwGui_1_1CScrollBar.html#a5">SetPosition</a>((pMouseMessage-&gt;<a class="code" href="classwGui_1_1CMouseMessage.html#m0">Point</a>.<a class="code" href="classwGui_1_1CPoint.html#a7">YPos</a>() - <a class="code" href="classwGui_1_1CWindow.html#a5">GetClientRect</a>().<a class="code" href="classwGui_1_1CRect.html#a9">Top</a>()) * (m_iMax - m_iMin) / <a class="code" href="classwGui_1_1CWindow.html#a5">GetClientRect</a>().<a class="code" href="classwGui_1_1CRect.html#a24">Height</a>() + m_iMin);00232                               <span class="keywordflow">break</span>;00233                          <span class="keywordflow">case</span> <a class="code" href="classwGui_1_1CScrollBar.html#s2s1">HORIZONTAL</a>:00234                               <a class="code" href="classwGui_1_1CScrollBar.html#a5">SetPosition</a>((pMouseMessage-&gt;<a class="code" href="classwGui_1_1CMouseMessage.html#m0">Point</a>.<a class="code" href="classwGui_1_1CPoint.html#a6">XPos</a>() - <a class="code" href="classwGui_1_1CWindow.html#a5">GetClientRect</a>().<a class="code" href="classwGui_1_1CRect.html#a10">Left</a>()) * (m_iMax - m_iMin) / <a class="code" href="classwGui_1_1CWindow.html#a5">GetClientRect</a>().<a class="code" href="classwGui_1_1CRect.html#a23">Width</a>() + m_iMin);00235                               <span class="keywordflow">break</span>;00236                          <span class="keywordflow">default</span>:00237                               <span class="keywordflow">throw</span>(<a class="code" href="classwGui_1_1Wg__Ex__App.html">Wg_Ex_App</a>(<span class="stringliteral">"CScrollBar::HandleMessage:  Unrecognized ScrollBar Type."</span>));00238                               <span class="keywordflow">break</span>;00239                          }00240                          <span class="keywordflow">if</span> (iOldPosition != m_iPosition)00241                          {00242                               CMessageServer::Instance().QueueMessage(<span class="keyword">new</span> TIntMessage(CMessage::CTRL_VALUECHANGING, <a class="code" href="classwGui_1_1CWindow.html#n4">m_pParentWindow</a>, <span class="keyword">this</span>, m_iPosition));00243                          }00244                     }00245                }00246                <span class="keywordflow">break</span>;00247           <span class="keywordflow">case</span> CMessage::CTRL_LCLICK:00248           {00249                <span class="keywordflow">if</span> (pMessage-&gt;<a class="code" href="classwGui_1_1CMessage.html#a3">Destination</a>() == <span class="keyword">this</span>)00250                {00251                     <span class="keywordflow">if</span> (pMessage-&gt;<a class="code" href="classwGui_1_1CMessage.html#a4">Source</a>() == m_pBtnUpLeft)00252                     {00253                          <a class="code" href="classwGui_1_1CScrollBar.html#a5">SetPosition</a>(m_iPosition - 1);00254                          bHandled = <span class="keyword">true</span>;00255                     }00256                     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (pMessage-&gt;<a class="code" href="classwGui_1_1CMessage.html#a4">Source</a>() == m_pBtnDownRight)00257                     {00258                          <a class="code" href="classwGui_1_1CScrollBar.html#a5">SetPosition</a>(m_iPosition + 1);00259                          bHandled = <span class="keyword">true</span>;00260                     }00261                     CMessageServer::Instance().QueueMessage(<span class="keyword">new</span> TIntMessage(CMessage::CTRL_VALUECHANGE, <a class="code" href="classwGui_1_1CWindow.html#n4">m_pParentWindow</a>, <span class="keyword">this</span>, m_iPosition));00262                }00263                <span class="keywordflow">break</span>;00264           }00265           <span class="keywordflow">default</span> :00266                bHandled = CWindow::HandleMessage(pMessage);00267                <span class="keywordflow">break</span>;00268           }00269      }00270 00271      <span class="keywordflow">return</span> bHandled;00272 }00273 00274 }00275 </pre></div><hr><address style="align: right;"><small>Generated on Sat Oct 25 12:43:25 2003 for wGui by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -