绘图基础--鼠标移动画点
// draw1.cpp
#include <afxwin.h>
// Define the application class
class CApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};
CApp App;
// define the window class
class CWindow : public CFrameWnd
{
public:
CWindow();
afx_msg void OnMouseMove(UINT,CPoint);
DECLARE_MESSAGE_MAP()
};
// The window's constructor
CWindow::CWindow()
{
Create(NULL, "Drawing Tests",
WS_OVERLAPPEDWINDOW,
CRect(0,0,250,250));
}
// The messahe map
BEGIN_MESSAGE_MAP( CWindow, CFrameWnd )
ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()
// Handle mouse movement
void CWindow::OnMouseMove(UINT flag,
CPoint mousePos)
{
//按住鼠标左键移动时,画点
if (flag == MK_LBUTTON)
{
CClientDC dc(this);
dc.SetPixel(mousePos,RGB(0,0,255)); //蓝色
//dc.SetPixel(mousePos,RGB(rand()%256,rand()%256,rand()%256));
}
//按住鼠标右键移动时,擦除点
if (flag == MK_RBUTTON)
{
CClientDC dc(this);
dc.SetPixel(mousePos,RGB(255,255,255)); //白色
}
}
// Init the application
BOOL CApp::InitInstance()
{
m_pMainWnd = new CWindow();
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
本文介绍了一个简单的绘图应用,演示了如何在窗口中通过鼠标移动实时画点,包括设置颜色和擦除功能。适用于初学者了解Windows绘图原理。
4564

被折叠的 条评论
为什么被折叠?



