
提供一个绘制任意曲线的简单代码。其他功能类似,希望能举一反三。
在窗兄陵体中添加一个Picture box,然后输入命令如下:
Dim oldx As SingleDim oldy As Single
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then 饥尘慎 '当鼠标左建按下时发生
Picture1.Line (oldx, oldy)-(X, Y)
oldx = X
oldy = Y
End If
End Sub
Private Sub Picture1_Mousedown(Button As Integer, Shift As Integer, X As Single, Y As 烂敬Single)
oldx = X
oldy = Y
End Sub
C#的可以么,C++的写出来我要学习一番
学了一天win32,发现自己数学有点差,利用三角函数写不出圆,也不晓得颜色怎么用,更不清楚画刷填充颜色怎么办。先附代码,只写了划线和矩形,继续学点MFC我就可以轻松写出来了
#include <windows.h>#include <stdio.h>
LRESULT CALLBACK WinSunProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
吵前 LPARAM lParam
升早清 )
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
WNDCLASS wndcls
wndcls.cbClsExtra=0
wndcls.cbWndExtra=0
wndcls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH)
wndcls.hCursor=LoadCursor(NULL,IDC_CROSS)
wndcls.hIcon=LoadIcon(NULL,IDI_ERROR)
wndcls.hInstance=hInstance
wndcls.lpfnWndProc=WinSunProc
wndcls.lpszClassName="MyForm"
wndcls.lpszMenuName=NULL
wndcls.style=CS_HREDRAW|CS_VREDRAW
RegisterClass(&wndcls)
HWND hwnd
hwnd=CreateWindow("MyForm","Hellow",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL)
ShowWindow(hwnd,SW_SHOWNORMAL)
UpdateWindow(hwnd)
MSG msg
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg)
DispatchMessage(&msg)
}
return msg.wParam
}
int pointx,pointy
LRESULT CALLBACK WinSunProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
HDC hdctemp
hdctemp=GetDC(hwnd)
switch(uMsg)
{
case WM_CHAR:break
case WM_LBUTTONDOWN:
pointy=lParam/65536
pointx=lParam%65536
break
case WM_LBUTTONUP:
//Draw Line
MoveToEx(hdctemp,pointx,pointy,NULL)
LineTo(hdctemp,lParam%65536,lParam/65536)
//DrawRectangle
MoveToEx(hdctemp,pointx,pointy,NULL)
LineTo(hdctemp,pointx,lParam/65536)
MoveToEx(hdctemp,pointx,lParam/65536,NULL)
LineTo(hdctemp,lParam%65536,lParam/65536)
MoveToEx(hdctemp,lParam%65536,lParam/65536,NULL)
LineTo(hdctemp,lParam%65536,pointy)
MoveToEx(hdctemp,lParam%65536,pointy,NULL)
LineTo(hdctemp,pointx,pointy)
ReleaseDC(hwnd,hdctemp)
break
case WM_PAINT:
HDC hDC
PAINTSTRUCT ps
hDC=BeginPaint(hwnd,&ps)
EndPaint(hwnd,&ps)
break
case WM_CLOSE:
if(IDYES==MessageBox(hwnd,"确定退出?","message",MB_YESNO))
睁者 DestroyWindow(hwnd)
break
case WM_DESTROY:
PostQuitMessage(0)
break
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam)
}
return 0
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)