65.9K
CodeProject 正在变化。 阅读更多。
Home

如何实现可滚动子对话框

2003年5月7日

公共领域

1分钟阅读

viewsIcon

259370

downloadIcon

9443

如何实现可滚动子对话框

Sample Image - ScrollableChildDialog.jpg

引言

很多次我都遇到(并且希望你也遇到!)需要一种子对话框的情况,用作更大对话框、窗口或视图等内部的控件。填充这个子对话框的控件很容易。设置它的大小以适应父窗口则不太容易。所以,这里有一个可滚动的子对话框,我发现它在我的应用程序中非常有用。

代码

代码非常简单,并且很大程度上基于 MSDN 文章 HOWTO: Create a Resizable Dialog Box with Scroll Bars (Q262954)。我只是选择 WS_CHILDWS_VSCROLL 样式创建了可滚动的对话框模板,并使用向导添加了 WM_SIZEWM_MOUSEWHEELWM_VSCROLL 消息。要在你的项目中使用的代码,请按照以下步骤操作:

  1. dlgscrollable.hdlgscrollable.cpp 添加到你的项目中
  2. 创建你自己的对话框资源模板,并替换头文件中的资源标识符
  3. 在父窗口中,添加一个成员变量,例如 CDlgScrollable* m_pdlgScrollable,并在 OnInitDialog 函数中创建新的 CDlgScrollable 对象。
  4. 在父对话框资源模板中,你可以使用静态文本框作为占位符来计算我的可滚动子控件的矩形。
  5. 你可以根据需要轻松更改“手”光标,加载不同的资源

显然,很容易添加对水平滚动的支持,它是对称的,而且我实际上并不需要它…… :P

就这样了!

这就是全部!为我的糟糕英语道歉(我是意大利人),这是我的第一篇文章。希望不是最后一篇!感谢 DD 和 GM 提出的建议和评论,这是代码的最新版本,或者至少是未来两个月的最新版本!玩得开心!

© . All rights reserved.