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

📄 subject_37537.htm

📁 vc
💻 HTM
字号:
<p>
序号:37537 发表者:最后疯狂 发表日期:2003-04-25 16:47:13
<br>主题:一个关于窗口滚动条和滚动条控件的问题。
<br>内容:示例程序如图所示。(视图窗口有滚动条,并且在视图中创建了滚动条控件)<BR><BR>Windows会把属于窗口一部分的滚动条和滚动条控件的消息绑定到一个WM_HSCROLL、WM_VSRCOLL消息中,发送给父窗口。现在出现了一个问题:<BR><BR>我想把窗口滚动条和在窗口中创建的滚动条控件消息分开处理,该怎么么?<BR><BR>我的代码如下:<BR><BR>void CTestView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (pScrollBar-&gt;GetDlgCtrlID() == 101) // 垂直滚动条控件的ID为101<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 如果是滚动条控件发送的消息<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 就这样处理<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE("Sending WM_VSCROLL for ScrollContrl\n") ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 如果是属于窗口一部分的滚动条发送的消息<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 我们就这样处理<BR>    ...<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE("Sending WM_VSCROLL for WindowScroll\n") ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>}<BR><BR>但这些代码有一个问题:当消息是滚动条控件所发送,pScrollBar-&gt;GetDlgCtrlID()函数能正确调用,程序能确定消息为滚动条控件所发,作进一步处理。<BR>如果消息为窗口滚动条所发送,pScrollBar-&gt;GetDlgCtrlID()函数会出错。因为窗口滚动条并不是一个窗口,在GetDlgCtrlID()内部的::IsWindow()函数调用返回FALSE。<BR><BR>我的问题是,如何区分开WM_VSCROLL、WM_HSCROLL消息是谁所发(是窗口滚动条还是滚动条控件)?并想作进一步处理。
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:最后疯狂 回复日期:2003-04-27 11:45:26
<br>内容:难道...难道就没有人能解决?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:擎天柱 回复日期:2003-04-27 12:43:36
<br>内容:最好使用窗体句柄进行比较,pScrollBar-&gt;GetSafeHwnd() == ?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

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