怎样在vc++的Win32应用程序中的任意位置输出文字??
LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam){PAINTSTRUCTps;...
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!",谢谢啦~ 展开
{
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!",谢谢啦~ 展开
4个回答
展开全部
可以使用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:”年龄
2013-07-18
展开全部
TextOut(hdc,
5, 5,
greeting, _tcslen(greeting));
把上面的5,5改成你想要输出的坐标就可以 啊
5, 5,
greeting, _tcslen(greeting));
把上面的5,5改成你想要输出的坐标就可以 啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-18
展开全部
要键盘输入可用这样:
AllocConsole();
freopen("CONOUT$","w+t",stdout);
freopen("CONIN$","r+t",stdin);
不用的时候要调用:freeConsole();
AllocConsole();
freopen("CONOUT$","w+t",stdout);
freopen("CONIN$","r+t",stdin);
不用的时候要调用:freeConsole();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2017-12-15
展开全部
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
// 获取标准输出设备句柄
CONSOLE_SCREEN_BUFFER_INFO bInfo; // 窗口缓冲区信息
GetConsoleScreenBufferInfo(hOut, & bInfo );
// 获取窗口缓冲区信息
char strTitle[255];
GetConsoleTitle(strTitle, 255); // 获取窗口标题
//printf("当前窗口标题是:%s\n", strTitle);
//_getch();
SetConsoleTitle("变形实验"); // 获取窗口标题
//_getch();
COORD size = {1024, 1024};
SetConsoleScreenBufferSize(hOut,size); // 重新设置缓冲区大小
//_getch();
SMALL_RECT rc = {0,0, 1024-1, 1024-1}; // 重置窗口位置和大小
SetConsoleWindowInfo(hOut,true ,&rc);
COLORREF color = RGB(192,192,192);
SetConsoleTextAttribute(hOut,FOREGROUND_INTENSITY | FOREGROUND_BLUE);
这是设置控制台的相关操作,你查一下
我想AllocConsole应该也能在C中使用的吧,你直接把这段加到WinMain前面试试,要包括头文件wincon.h
// 获取标准输出设备句柄
CONSOLE_SCREEN_BUFFER_INFO bInfo; // 窗口缓冲区信息
GetConsoleScreenBufferInfo(hOut, & bInfo );
// 获取窗口缓冲区信息
char strTitle[255];
GetConsoleTitle(strTitle, 255); // 获取窗口标题
//printf("当前窗口标题是:%s\n", strTitle);
//_getch();
SetConsoleTitle("变形实验"); // 获取窗口标题
//_getch();
COORD size = {1024, 1024};
SetConsoleScreenBufferSize(hOut,size); // 重新设置缓冲区大小
//_getch();
SMALL_RECT rc = {0,0, 1024-1, 1024-1}; // 重置窗口位置和大小
SetConsoleWindowInfo(hOut,true ,&rc);
COLORREF color = RGB(192,192,192);
SetConsoleTextAttribute(hOut,FOREGROUND_INTENSITY | FOREGROUND_BLUE);
这是设置控制台的相关操作,你查一下
我想AllocConsole应该也能在C中使用的吧,你直接把这段加到WinMain前面试试,要包括头文件wincon.h
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询