DrawText()可以显示字符数组,由于设定的显示尺寸,导致只显示其中的部分,如何找到剩下的字符索引,以便可以继续显示下以页.
解决方案 »
- function does not take 0 parameters错误要怎么解决啊?
- Vc程序显示auto cad图形?
- photoshop如何把一个24位图变成8位图呢
- 如何给一个软件加一个使用期限
- ADO 使用命名空间的问题。
- ScreenToClient起什么作用?
- double型转变成字符串的问题
- 在CMyEditView中,在插入符(光标Caret)所在行中,如何得到Caret前后的二个字符串?
- 学校图书馆的图书清理贱卖,我买了本AUTOCAD2000环境下C/VC应用程序开发教程,有没有懂这个的人说说这个书?
- 请推荐机本网络编程方面入门的书级最好源代码用c(sdk),c++(vc)写的?不知网络编程应该从什么方面入手,很迷盲!!!,谢谢
- 在书店听到的对话
- 如何在MFC程序中加入ANI图标啊!!
算出每行能显示的字数
然后每次只取一行能显示的字符给予显示
直到到达最后
这里简单给个SAMPLE CODE,哈,可能有点点问题的
void myDrawText(HDC hdc , HWND hWnd)
{
RECT rcClient;
::GetClientRect (hWnd , &rcClient);
memset(buf , 0 , sizeof(char)*1000 );
memset(buf , 65 , sizeof(char)*1000 );
TEXTMETRIC txmet ;
::GetTextMetrics ( hdc , &txmet );
int lineCount = 0 ;
lineCount = rcClient.right /txmet.tmMaxCharWidth ;
int fontHeight = txmet.tmHeight ; char *pbuf = new char[lineCount] ;// = buf ;
char *pbuf2 = buf ;
int icount = 0;
int ix = 0 ;
int iy = 0 ; while(1)
{
memset(pbuf , 0 , sizeof(char)*lineCount );
for(int i= 0 ; i< lineCount ; i++ )
{
icount++;
if (icount == 1000)
break; pbuf[i] = *pbuf2;
pbuf2++; } // draw text
::TextOut(hdc , ix ,iy, pbuf, strlen(pbuf));
iy+= fontHeight ;
if (icount == 1000)
break; }
delete[] pbuf ;
}