求救: .net如何实现SetROP2光栅操作?

shooterlily 2003-12-04 05:41:11
如何实现异或笔?.net框架本身有支持吗?
我用DLLImport后实现了画线,但无法实现写字,
bitblt有时还会导致什么反应没有,请各位帮忙!
...全文
116 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shooterlily 2003-12-05
  • 打赏
  • 举报
回复
谢谢楼上各位,我用DllImport调用SetROP2后调用MoveToEx和LineTo能够正确地画出异或线;
但我要实现鼠标移动中文本的异或,调用SetROP2后调用TextOut无法得到正确结果,
于是调用CreateCompatibleDC,CreateCompatibleBitmap,实现BitBlt的异或,
结果却不能达到目的,不知各位有没有兴趣帮我试一试?

下面是部分源代码

if(不是第一次)//使用内存DC再异或一次达到恢复的目的
{
BitBlt(mHdc,0,0,Width,Height,mHMemDc,0,0,0x00660046);
}

int hBrush = CreateSolidBrush(0);
unsafe
{
RECT rect = new RECT();
rect.left = 0;
rect.top = 0;
rect.right = Width;
rect.bottom = Height;
FillRect(mHMemDc,(int)&rect,hBrush);
}

SetTextColor(mHMemDc,0xFFFF00);
TextOut(mHMemDc,x,y,text,text.Length);

BitBlt(mHdc,0,0,Width,Height,mHMemDc,0,0,0x00660046);//新的文本异或
Firestone2003 2003-12-04
  • 打赏
  • 举报
回复
楼上说得对
FileNewExit 2003-12-04
  • 打赏
  • 举报
回复
try:

[DllImport("gdi32.dll", EntryPoint="SetROP2")]
public static extern int SetROP2 (
IntPtr hdc,
int nDrawMode
);
o1o 2003-12-04
  • 打赏
  • 举报
回复
直接引用试过了没。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧