通过前面的学习,我们已经能够成功地创建一个基本窗口,并进行了简单的修饰,这一课我们进入窗口内部学习;
一个窗口由两部分,内部用户区和非用户区,用户区指用户可以操作的区域,非用户区是指标题栏和四个边框,这些区域产生的消息一般由系统处理;
下面我们来学习怎样在用户区显示一段文字:
1、文字的笔画是由许多小点组成的,点越小字也就越精确细腻,因此显示器的分辨率越高看着就越清楚,
一般是800×600 或者1024×768,大家可以查看一下自己的显示器;
2、用户程序准备好显示内容,向系统提出设备申请,然后用TextOut函数输出到用户区指定的位置,同时还可以设定字体、颜色和效果;
3、启动VC,新建一个名为“Text”的Win32 Application工程,新建一个相同名称的头文件和一个cpp源程序文件,
在头文件中输入函数的申明,在源程序中输入基本框架代码WinMain和InitApplication,InitInstance函数,这些和前面都是一样的;
4、加入消息处理代码,我们要求文字和窗口一同显示出来,代码如下(绿色双斜杠部分是注释),有的行太长会自动折到了下一行开头:
LRESULT CALLBACK MainWndProc(
HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc; //需要设备
PAINTSTRUCT ps; //使用设备的结构对象
switch(message) //需要自己处理的消息
{
case WM_PAINT: //接收WM_PAINT消息,本消息自动产生
hdc=BeginPaint(hWnd,&ps); //申请设备
SetTextColor(hdc, RGB(240,230,0));//浅黄色
//设置前景色,RGB分别代表红色、绿色、蓝色(255,255,255)的叠加;
SetBkMode(hdc,TRANSPARENT);
//背景模式为透明背景;
TextOut(hdc,20,30,"清晨,来到美丽的校园……",lstrlen("清晨,来到美丽的校园……"));
//设备,列位置,行位置,内容,测出字数
EndPaint(hWnd,&ps); //结束设备使用
break;//本条消息处理完毕,
case WM_DESTROY://退出应用程序,
PostQuitMessage(0);//向系统发送一条WM_QUIT消息,
break;
default: //让系统帮着处理的消息
return (DefWindowProc(hWnd,message,wParam,lParam));
}
return(0);//函数返回值
}
保存一下文件
本节学习了在用户区输出文字的代码设计,如果你成功地完成了练习,请继续学习下一课内容;