⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testdemo.cpp

📁 c++从入门到精通
💻 CPP
字号:
#include<windows.h>
#include<stdlib.h>
#include<string.h>
long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);
BOOL InitWindowsClass(HINSTANCE hInstance);
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);

//主函数
int WINAPI WinMain(HINSTANCE hInstance, 
				   HINSTANCE hPrevInstance,
				   LPSTR lpCmdLine, 
				   int nCmdShow)
{
	MSG Message;
	if(!InitWindowsClass(hInstance))
		return FALSE;
	if(!InitWindows(hInstance,nCmdShow))
		return FALSE;
	while(GetMessage(&Message,0,0,0))//消息循环
		{
			TranslateMessage(&Message);
			DispatchMessage(&Message);
		}
		return Message.wParam;
}

//消息处理函数
long WINAPI WndProc(HWND hWnd,
					UINT iMessage,
					UINT wParam,
					LONG lParam)
{
	static int nXChar,nCaps,nYChar;
	HDC hDC; //定义指向设备描述表的句柄	
	TEXTMETRIC tm;
	int LnCount=6;
	int i;
	PAINTSTRUCT PtStr; //定义指向包含绘图信息的结构体变量
	static char *textbuf[]=
	{
		"    登观阙楼",
		"       孟浩然",
		"白 日 依 山 尽",
		"黄 河 入 海 流",
		"欲 穷 千 里 目",
		"更 上 一 层 楼",
			
			
	};
	switch(iMessage)//处理消息
	{
	case WM_CREATE:	//处理窗口创建消息
		hDC=GetDC(hWnd) ; //获取当前设备描述表句柄
		GetTextMetrics(hDC,&tm);//获取字体信息
		nXChar=tm.tmAveCharWidth;//获取字符宽度
		nYChar=tm.tmHeight+tm.tmExternalLeading;
		nCaps=(tm.tmPitchAndFamily&1?3:2)*nXChar/2;
		ReleaseDC(hWnd,hDC); //释放当前设备描述表句柄
		return 0;
	case WM_PAINT: //处理重画消息
		hDC=BeginPaint(hWnd,&PtStr); //开始绘画
		for(i=0;i<LnCount;i++)	
		{    //输出文本
			TextOut(hDC,nXChar,nYChar *(1+i),textbuf[i],lstrlen(textbuf[i])); 
		}
		EndPaint(hWnd,&PtStr);
		return 0;
	case WM_DESTROY://结束应用程序
		PostQuitMessage(0);
		return 0;
		default://其他消息处理程序
		return(DefWindowProc(hWnd,iMessage,wParam,lParam)) ;
	}
}

BOOL InitWindowsClass(HINSTANCE hInstance)//初始化窗口类
{
	WNDCLASS WndClass;
	WndClass.cbClsExtra=0;
	WndClass.cbWndExtra=0;
	WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));
	WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
	WndClass.hIcon=LoadIcon(NULL,"END");
	WndClass.hInstance=hInstance;
	WndClass.lpfnWndProc=WndProc;
	WndClass.lpszClassName="WinText";
	WndClass.lpszMenuName=NULL;
	WndClass.style=CS_HREDRAW|CS_VREDRAW;
	return RegisterClass(&WndClass);
}

BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)//初始化窗口
{
	HWND hWnd;
	hWnd=CreateWindow("WinText", //生成窗口
					"输出文本示例程序",
					WS_OVERLAPPEDWINDOW,
					CW_USEDEFAULT,
					0,
					CW_USEDEFAULT,
					0,
					NULL,
					NULL,
					hInstance,
					NULL);
	if(!hWnd)
		return FALSE;
	ShowWindow(hWnd,nCmdShow);//显示窗口
	UpdateWindow(hWnd);
	return TRUE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -