关于在TextBox插入图片的问题!
在TextBoxt上绘画如四方形,圆形等,都可以通过hdc=GetDC(textBox1.HWND)
Ellipse hdc,100,100,300,300来绘一个圆。
请问TextBox在用GetDC取得DC后怎用API插入一个图片???? 大概的过程:
HDC hdc = GetDC(hWnd);//获取当前的显示设备上下文
HBITMAP bitmap;//图象句柄
//从硬盘下载图片
bitmap = (HBITMAP)LoadImage(NULL,"bg.bmp",IMAGE_BITMAP,with,height,LR_LOADFROMFILE);
//从资源文件中下载图片
//bitmap=LoadBitmap (g_hInstance,MAKEINTRESOURCE(IDB_BITMAP));
HDC hdcsource = CreateCompatibleDC(NULL);//创建存放图象的显示缓冲
SelectObject(hdcsource,bitmap); //将位图资源装入显示缓冲
BitBlt(hdc,x,y,with,height,hdcsource,x,y,SRCCOPY);//将图象显示缓冲的内容直接显示到屏幕
ReleaseDC(hdc);
不过直接用RichTextBox比较好。因为你要考虑重绘、文本框文本的水平、垂直滚动、插入点光标等等很多东西。 先试一下先谢谢你 是哦,考虑一下RichTextBox吧,你这个需求确实有些特别,让我想起如codesmart那类在编辑器里作图等辅助编辑的功能。 要图文混合,明显应该用RichTextBox。
TextBox 只支持文字的。无论你用什么API去画,那个“图片”始终不会“占位”。
你要想在TextBox中实现“图片占位”的效果,那不是一般的麻烦。
除非显示的内容很少,并且“格式”固定,那么还有可能通过一些方式来计算,用空格把位置给它补出来。
没试过,但估计能通过子类化攫取WM_PAINT消息,将图片BitBlt后,再调用原窗口过程,完成文字打印
这种情况,图片应该就是TextBox的“背景”吧,文字很有可能是覆盖在图片上的。
当然,如果楼主要的就是这样的效果,自然没话可说了。
补充:VB , API