我有一个MFC应用程序,它使用Rogue Wave的Stingray Studio Objective Grid来显示一个带有网格的对话框。在进行打印预览时,网格使用MFC打印预览机制生成打印预览对话框。在对话框中,我会看到您期望的所有按钮,包括下一个和上一个,以及放大和缩小。我在网格中有超过一页的数据,因此我看到右侧的滚动条,启用了下一步按钮,并禁用了上一个按钮。如果我单击下一个按钮,对话框会将预览推进到数据的下一页,我看到滚动条会相应地向下移动,但是Prev按钮不会启用。我可以使用滚动条向两个方向滚动,但“Prev”按钮永远不会启用,而当我到达最后一页时,“下一步”按钮永远不会禁用。我看到缩放按钮有类似的问题。我可以放大,但缩小按钮从不启用,所以我再也不能缩小了。
之前有没有人见过这种行为并知道是什么原因造成的?
答案 0 :(得分:0)
所以看起来我的问题归结为工具栏没有让消息刷新自己。每当预览无效时,它应该是WM_IDLEUPDATECMDUI
,但事实并非如此。我找到的示例应用程序正常工作,它确实收到了这些消息。我认为在我的情况下发生的事情是我的代码在一个我无法控制的应用程序的DLL中,当应用程序捕获消息时,它会吞下某些消息,包括这个消息。我能用kludge解决这个问题。我找到预览窗口,在OnPrint虚拟功能中,我将消息发送到它的工具栏。这很有效,但不是很漂亮。