现在有一组文字!!
我想将文字现在在DLG的特定位置!!
并且要BITBLT上去!!我该怎么去做啊!!BITBLT我就知道如何将位图复制到当前DC上啊,可是如何将文字显示,我就不太清楚了还有,我要实现文字在DLG的特定矩形内实现滚屏,我该如何做呢??挺困惑的,给高分!!如果您有时间,请加我Q,我们详谈!!14645094
我想将文字现在在DLG的特定位置!!
并且要BITBLT上去!!我该怎么去做啊!!BITBLT我就知道如何将位图复制到当前DC上啊,可是如何将文字显示,我就不太清楚了还有,我要实现文字在DLG的特定矩形内实现滚屏,我该如何做呢??挺困惑的,给高分!!如果您有时间,请加我Q,我们详谈!!14645094
解决方案 »
- 为什么IMPLEMENT_SERIAL宏只重载>>符号,没有重载<<符号呢?
- 大家推荐一下好的VC源代码网站
- vc++小问题,但自己解决不了
- 问一个SDK的问题
- 类似联众游戏大厅之类的软件,用户登陆后的信息保存在哪里?
- 我的VC程序中加入了串口通讯控件,怎样在脱离VC的环境下运行???????
- 如何修改vector<string>中的元素?
- 急,100分求助,请问使用CADORecordBinding可以得到一个数据表的多条记录吗?
- 送小分:怎样在一个对话框程序中产生一个HWND视窗?
- 急!!!:怎样在多文档程序中添加多个文档摸扳(肯定给分)
- 求助:用MFC ActiveX 向导开发一个像QQ发送框一样的CRichEdit控件!急等!
- GetFieldValue
//怎么滚?
不知道你说的是不是这个意思。滚屏,可以用BITBLT时设置不同的参数(xSrc,ySrc)实现
最开始我是这样想的
nDC = CreateCompatibleDC(hDC); SIZE n_size;
GetTextExtentExPoint(hDC,_T("中"),_tcslen(_T("中")),NULL,NULL,NULL,&n_size);
n_hight = 11*n_size.cy;
MoveRect.top = 0;
MoveRect.left = 0;
MoveRect.right = allrect.right;
MoveRect.bottom = n_hight;
SelectObject(nDC,CreateRectRgnIndirect(&MoveRect));然后接着就是写数据到MoveRect里面
DrawText(nDC, _T("123123"), -1, &MoveRect, DT_LEFT);在然后我就BITBLT
BitBlt(hDC, allrect.left, allrect + 16, allrect.right-allrect.left, 18, nDC, 0, 0, SRCCOPY);
我总觉得BITBLT的2,3位置应该是把内存中RECT复制到DLG上的左上角坐标,然后我通过盖面后面的两个坐标实现滚动啊!!可效果不想我想的那样啊,不知道哪错了!
代码都是按编写者的意思去执行的,机器不会曲解你的意思。
没有达到效果,只能说明的代码不对。
你那个MoveRect的值是个定值,当然没有移动的效果。需要加个定时器,不断改变MoveRect.left的值才是。
1. 不知道你到底采用了什么方式去“写”
2. 你要写桌面? 那没看到你有取桌面的HDC。
要实现像你所说的滚屏的话,CodeProject 上有个 CCloudsCtrl
搜索一下,就是你想要的。
不就是在对话上显示字符串嘛!
取得对话框的DC后,你爱怎么写就怎么写!dc = this->GetDC();
dc->SetBkMode(TRANSPARENT); //透明显示
dc->SetTextColor(m_NewColor);
dc->DrawText("sadasdasd", &rect, DT_LEFT|DT_VCENTER|DT_SINGLELINE);
然后在Dlg 的OnPaint()里加一句
::SetDlgItemText(m_hWnd,IDC_STATIC1,"yourstr");