猿问

是这样的,想输出一段文字,请问怎样在vc++的Win32应用程序中的任意位置输出文字?

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{

PAINTSTRUCT ps;
HDC hdc;
TCHAR greeting[] = _T("Hello, World!");

switch (message)
{
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
out "Hello, World!"
// in the top left corner.
TextOut(hdc,
5, 5,
greeting, _tcslen(greeting));
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
break;
}
大家帮帮我~吧这个程序改一改,让它在窗口的任意位置输出"Hello World!",谢谢啦~

达令说
浏览 332回答 3
3回答

森林海

可以使用TextOut函数。函数功能:该函数用当前选择的字体、背景颜色和正文颜色将一个字符串写到指定位置。函数原型:BOOL TextOut(HDC hdc, // 设备描述表句柄int nXStart, // 字符串的开始位置 x坐标int nYStart, // 字符串的开始位置 y坐标LPCTSTR lpString, // 字符串int cbString // 字符串中字符的个数);参数:hdc[输入] 设备环境的句柄nXStart[输入] 指定用于字符串对齐的基准点的逻辑X坐标。nYStart[输入] 指定用于字符串对齐的基准点的逻辑Y坐标。lpString[输入] 指向将被绘制字符串的指针。此字符串不必为以\0结束的,因为cbString中指定了字符串的长度。cbString[输入] 指定了字符串的长度。返回值:如果函数调用成功,返回值为非零值。如果函数调用失败,返回值为0。例子:CStudentDoc* pDoc = GetDocument();    char buffer[10];CString age;pDC->TextOut(0,0,"NAME: "+pDoc->m_name);      //在坐标(0,0)位置输出“NAME:”名字_itoa(pDoc->m_age,buffer,10);          //将整型数据转化成字符串age=buffer;pDC->TextOut(0,40,"AGE: "+age);        //在坐标(0,40)位置输出“AGE:”年龄
随时随地看视频慕课网APP
我要回答