win32学习之 --------GDI使用 代码记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了win32学习之 --------GDI使用 代码记录相关的知识,希望对你有一定的参考价值。

LRESULT QMainFrame::onPaint(WPARAM wParam, LPARAM lParam) {
	PAINTSTRUCT ps;
	HDC hDC = ::BeginPaint(m_hWnd, &ps);
	RECT rcClient;
	GetClientRect(&rcClient);
	assert(hDC);
	{
		/**画字体
		DrawText(hDC,_T("test"), _tcslen(_T("test")),&rcClient,DT_CENTER | DT_VCENTER | DT_WORD_ELLIPSIS | DT_SINGLELINE );
		COLORREF clroldTextColor = SetTextColor(hDC,RGB(255,0,0));//设置字段的颜色
		COLORREF clrBackColor = SetBkColor(hDC,RGB(0,255,0));//设置字段的背景
		HFONT hFont = CreateFont(
			15,
			0,
			0,
			0,
			500,
			FALSE,
			FALSE,
			0,
			ANSI_CHARSET,
			OUT_DEFAULT_PRECIS,
			CLIP_DEFAULT_PRECIS,
			DEFAULT_QUALITY,
			DEFAULT_PITCH|FF_SWISS,
			_T("arial")
		);//创建一个字体
		HFONT hOldFont =(HFONT) ::SelectObject(hDC, (HGDIOBJ)hFont);//创建字体
		TextOut(hDC, 0, 0, _T("test"), _tcslen(_T("test")));
		::SelectObject(hDC, (HGDIOBJ)hOldFont);//还原字体
		DeleteObject((HGDIOBJ)hFont);//删除创建字体
		SetTextColor(hDC, clroldTextColor);//还原字段颜色 设置
		SetBkColor(hDC, clrBackColor);//还原字段背景色  设置 
		*/

		/**输出点
		for (int i = 0; i < 100; i++) {
		for (int j = 0; j < 100; j++) {
		SetPixel(hDC, i, j, RGB(0, 0, 255));//画一个像素点
		}
		}
		*/
		
		/** 画线
		HPEN hPen= CreatePen(PS_SOLID, 3, RGB(255, 0, 0));//产生一个画笔
		HPEN hOldPen = (HPEN)::SelectObject(hDC, (HGDIOBJ)hPen);//设置画笔
		{
		MoveToEx(hDC, 0, 0, NULL);//设置画线的开始点
		LineTo(hDC, rcClient.right, rcClient.bottom);//设置画线的结束点
		}
		::SelectObject(hDC, (HGDIOBJ)hOldPen);//还原画笔
		DeleteObject((HGDIOBJ)hPen); //记得删除 使得GDI对象不被增加
		*/

		/**画面
		RECT rc2;
		rc2.left = 0;
		rc2.right = 100;
		rc2.top = 0;
		rc2.bottom = 50;
		HPEN hPen = (HPEN)::GetStockObject(NULL_PEN);//调用系统中的画笔  画无边框画面
		//HPEN hPen = CreatePen(PS_SOLID, 3, RGB(255, 0, 0));//产生一个画笔  来修改边框
		HPEN hOldPen = (HPEN)::SelectObject(hDC, (HGDIOBJ)hPen);//设置画笔
		{
		HBRUSH hBrush = ::CreateSolidBrush(RGB(0, 0, 255));//创建一个画刷
		HBRUSH hOldBrush = (HBRUSH)::SelectObject(hDC, (HGDIOBJ)hBrush);
		{
		::Rectangle(hDC, rc2.left, rc2.top, rc2.right, rc2.bottom);
		}
		::SelectObject(hDC, (HGDIOBJ)hOldBrush);//还原画刷
		DeleteObject((HGDIOBJ)hBrush); //记得删除 使得GDI对象不被增加
		}
		::SelectObject(hDC, (HGDIOBJ)hOldPen);//还原画笔
		DeleteObject((HGDIOBJ)hPen); //记得删除 使得GDI对象不被增加
		*/
	}
	::EndPaint(m_hWnd, &ps);
	return TRUE;
}


以上是关于win32学习之 --------GDI使用 代码记录的主要内容,如果未能解决你的问题,请参考以下文章

cmake学习之-configure_file

Linux学习之八-配置FTP连接Linux服务器

NodeJS学习之win10安装与sublime配置

STM32学习之大纲

机器学习之GPU运算性能和CPU性能对比

TensFlow框架学习之MNIST机器学习入门