如何把一图片改为画笔,用来画线!!!!!!(100分)

  • 主题发起人 主题发起人 whjs
  • 开始时间 开始时间
W

whjs

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用一特定的图片,作为线的形式用来画线,createpen函数不支持,我想用
windows api中的extcreatepen,但是不知道如何用,请各位指教!
 
什么意思?
 
我想把画笔的形状改变,它的形状用我选择的图片来替换,
这样再画线的时候,就是选择的图片。我急需大家的帮忙!
 
图片固定吗?如固定则好办,将图片加入资源文件,然后把图片当做鼠标
 
图片画线?是用图片画矩形?
 
HPEN ExtCreatePen(
DWORD dwPenStyle, // pen style
DWORD dwWidth, // pen width
CONST LOGBRUSH *lplb, // pointer to structure for brush attributes
DWORD dwStyleCount, // length of array containing custom style bits
CONST DWORD *lpStyle // optional array of custom style bits
);
先设置好你的Canvas.TBrush, 然后用这个ExtCreatePen,参数可以从Canvas.Pen中复制过来
dwPenStyle中一定要有PS_GEOMETRIC, 如: dwPenStyle := PS_GEOMETRIC or ps_Solid

LogBrush指向Canvas.Brush.Handle

将创建好的HPen赋值给Canvas.Pen.Handle;
 
你只需用你的位图来创建一个新的画刷,就行了,记者用完后要把它删除!!!并恢复原来的BRUSH
 
把你的图片放进工程的资源文件中.用下面的参考代码就可以
const
cs_pen = 10;
...

procedure Tform1.create(...)
begin
Screen.Cursors[cs_pen]:=loadCursor(HInstance,'pen');//pen为在资源文件中你这个图片的名字
end;
procedure Tform1.button1click(...)
begin
image1.Cursor:=cs_pen;
end;


 
接受答案了.
 
后退
顶部