WTL RedrawWindow parameterrs
WTL RedrawWindow parameterrs
我是wtlc++的新手。我真的很困惑,进入RedrawWindows函数的参数,特别是对于标志。我只是想更新一个窗口,每次我画一条线,但我不完全理解如何
LRESULT CDrawView::OnLButtonUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
int xPos= GET_X_LPARAM(lParam);
int yPos = GET_Y_LPARAM(lParam);
end.X = xPos;
end.Y = yPos;
Pen pen(Color(0, 0, 255));
m_GraphicsImage.DrawLine(&pen, start.X, start.Y, end.X, end.Y);
我试着在这里调用RedrawWindow
RedrawWIndow(NULL,NULL, NULL, RDW_INTERNALPAINT)
所以每次我释放鼠标左键,窗口得到更新。我很难理解重绘函数的参数。我试着把它们都设为null减去最后一个但是Visual studio说函数不需要4个参数尽管我读了msdn microsoft。
您没有调用全局RedrawWindow
。
你正在调用成员函数CWindow::RedrawWindow
,它有3个参数。
BOOL RedrawWindow(
LPCRECT lpRectUpdate = NULL,
HRGN hRgnUpdate = NULL,
UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE
); throw()
编辑:这三个参数都有默认参数,这意味着它们不需要单独提供,RedrawWindow()
应该单独工作
这不是您应该使用的方式,您应该使用API。您的鼠标按钮处理程序应该调用Invalidate()
或InvalidateRect
与您正在标记为需要更新的窗口的特定部分。然后,您的窗口将在第一个操作系统方便时接收WM_PAINT
事件,您的绘制处理程序将绘制该线。
RedrawWindow
可能会解决这个问题,但是很可能很快就会成为下一个问题的基础,因为您已经在错误的方向上了。
相关文章:
- 静态自动 constexpr t = { "red" , "black" , "green" } 是什么类型;派生到?
- Red Hat:使用<atomic>编译很好,但链接器找不到__atomic_store_16;什么库?
- 是否有一种方法可以将C 代码用于Node-Red中
- 如何检查过程是否在Red Hat Linux上运行
- 在GCC 4.4.7 Red Hat 6.6上运行GCC 5.2
- 为什么这段代码在Mac和Red Hat中的运行方式如此不同
- 从 S 中删除'red'组合的第一个匹配项
- 如何在Red Hat 7下使用log4cxx
- mbstowcs 在 Red Hat Linux 上返回 -1,但在 Solaris 上不返回
- 性能映射 C++ 查找(G++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3))
- 在 CHtmlEditCtrl 中绘制"red squiggly line"
- 对于我应该在Visual Studio和Eclipse (Code Red)中使用什么单元测试框架有什么想法吗?
- WTL RedrawWindow parameterrs
- 在eclipse、Red Hat Linux中运行c++项目时出现问题
- c++ unix 32bit到Red Hat Linux,运行在x86_64芯片上(64位服务器)
- 类预设(如Color.Red)