ommonstatic.cpp

来自「VC&Matlab混合编程实现无线电导航指示器」· C++ 代码 · 共 236 行

CPP
236
字号
// ommonStatic.cpp: implementation of the CommonStatic class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "RADIO.h"
#include "ommonStatic.h"
#include "APPStatic.h"
#include "RADIODoc.h"
#include "RADIOView.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif


//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

WNDPROC CommonStatic::previousParentProc=NULL;//用来存DrawToolBar父框架原先WndProc

CommonStatic::CommonStatic()
{

}

CommonStatic::~CommonStatic()
{

}

LRESULT CALLBACK CommonStatic::ParentWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{   //DrawToolBar的新WndProc!
	//这可是最原始没包装过的WndProc!
	if (uMsg==WM_SETTEXT) {
		UINT IDfloatingTitle=(UINT)::GetWindowLong(hwnd,GWL_USERDATA);
		TCHAR buffer[30]; 
		if(::LoadString(AfxGetApp()->m_hInstance,IDfloatingTitle,buffer,sizeof(buffer))!=0)
		{
			lParam=(LPARAM)buffer;//lParam是字符串内容,传给DefWindowProc改窗口标题
		}
		return ::DefWindowProc(hwnd,uMsg,wParam,lParam);
	}
	if (uMsg==WM_QUIT) {//收到WM_QUIT才说明这个窗口彻底完了!完了就把它原本WndProc置成NULL.
		previousParentProc=NULL;
		return ::DefWindowProc(hwnd,uMsg,wParam,lParam);
	}
	
	return	::CallWindowProc(previousParentProc,hwnd,uMsg,wParam,lParam);
}


//CDrawToolBar的Paint!
void CommonStatic::PaintProcToolBar(CDC *pDC, CString strInfo)
{
	pDC->SetBkColor (RGB(0,0,0)) ;
	pDC->SetTextColor(RGB(255,255,0));
	pDC->TextOut(110,9,strInfo);
}

//CDrawToolBar的Paint!中文字串用。
void CommonStatic::PaintProcToolBar2(CDC *pDC, CString strInfo)
{

	CWnd *wndStatic=pDC->GetWindow();
	//得到pDC的窗口的Font;
	LOGFONT logFont;
	CFont *pFont=wndStatic->GetFont();
	pFont->GetLogFont(&logFont);
	//更改Font
	CFont font;
	lstrcpy(logFont.lfFaceName,TEXT("楷体_GB2312"));
	logFont.lfHeight=14;
	logFont.lfWeight=FW_BOLD;
	font.CreateFontIndirect(&logFont);
	pDC->SelectObject(&font);
	pDC->SetTextColor(RGB(255,255,0));
	pDC->SetBkColor(RGB(0,0,0));
	pDC->TextOut(110,11,strInfo);
}

//CDrawStatic的Paint!
void CommonStatic::PaintProcStatic(CDC *pDC, CString strInfo)
{
	CWnd *wndStatic=pDC->GetWindow();
	//得到pDC的窗口的Font;
	LOGFONT logFont;
	CFont *pFont=wndStatic->GetFont();
	pFont->GetLogFont(&logFont);
	//更改Font
	CFont font;
	//画图
	pDC->SetBkColor(RGB(0,0,0));
	if(strInfo=="title"){
		lstrcpy(logFont.lfFaceName,TEXT("楷体_GB2312"));
		logFont.lfHeight=16;
		logFont.lfWeight=FW_BOLD;
		font.CreateFontIndirect(&logFont);
		pDC->SelectObject(&font);
        pDC->SetTextColor(RGB(0,255,0));
		pDC->SetBkColor(APPStatic::colorDlg);
		CString strText;
		wndStatic->GetWindowText(strText);
		pDC->TextOut(0,0,strText);
	}else if(strInfo=="engTitle"){		
		lstrcpy(logFont.lfFaceName,TEXT("System"));
		logFont.lfHeight=15;
		logFont.lfWeight=FW_BOLD;
		font.CreateFontIndirect(&logFont);
		pDC->SelectObject(&font);
        pDC->SetTextColor(RGB(0,255,0));
		pDC->SetBkColor(APPStatic::colorDlg);
		CString strText;
		wndStatic->GetWindowText(strText);
		pDC->TextOut(0,0,strText);
	}
    else{
		//lstrcpy(logFont.lfFaceName,TEXT("宋体"));
		logFont.lfHeight=20;
		logFont.lfWeight=FW_BOLD;
		font.CreateFontIndirect(&logFont);
		pDC->SelectObject(&font);
		pDC->SetTextColor(RGB(255,255,1));
		pDC->SetBkColor(APPStatic::colorDlg);
		pDC->TextOut(0,0,"                   ");//先刷一次空格
		pDC->TextOut(0,0,strInfo);
    }
}


//CDrawStatic的Paint,给信标相关的中文用。
void CommonStatic::PaintProcStatic2(CDC *pDC, CString strInfo)
{
	CWnd *wndStatic=pDC->GetWindow();
	//得到pDC的窗口的Font;
	LOGFONT logFont;
	CFont *pFont=wndStatic->GetFont();
	pFont->GetLogFont(&logFont);
	//更改Font
	CFont font;
	//画图
	pDC->SetBkColor(RGB(0,0,0));
	lstrcpy(logFont.lfFaceName,TEXT("楷体_GB2312"));
	logFont.lfHeight=16;
	logFont.lfWeight=FW_BOLD;
	font.CreateFontIndirect(&logFont);
	pDC->SelectObject(&font);
	if(APPStatic::GetMainView()->GetBeaconManage()->IsBeaconAvailable()){
	pDC->SetTextColor(RGB(255,255,1));
	}else
	{pDC->SetTextColor(RGB(255,0,0));
	}
	pDC->SetBkColor(APPStatic::colorDlg);
	pDC->TextOut(0,0,"            ");//先刷一次空格
	pDC->TextOut(0,0,strInfo);    
}


//CDrawStatic的Paint,给信标相关的用。
void CommonStatic::PaintProcStatic3(CDC *pDC, CString strInfo)
{
		CWnd *wndStatic=pDC->GetWindow();
	//得到pDC的窗口的Font;
	LOGFONT logFont;
	CFont *pFont=wndStatic->GetFont();
	pFont->GetLogFont(&logFont);
	//更改Font
	CFont font;
	//画图
	pDC->SetBkColor(RGB(0,0,0));
	lstrcpy(logFont.lfFaceName,TEXT("System"));
	logFont.lfHeight=16;
	logFont.lfWeight=FW_BOLD;
	font.CreateFontIndirect(&logFont);
	pDC->SelectObject(&font);
	if(APPStatic::GetMainView()->GetBeaconManage()->IsBeaconAvailable()){
	pDC->SetTextColor(RGB(255,255,1));
	}else
	{pDC->SetTextColor(RGB(255,0,0));
	}
	pDC->SetBkColor(APPStatic::colorDlg);
	pDC->TextOut(0,0,"                ");//先刷一次空格
	pDC->TextOut(0,0,strInfo);    
}


//CDrawStatic的Paint,Sheet2的Paint proc。
void CommonStatic::PaintProcStatic4(CDC *pDC, CString strInfo)
{
	CWnd *wndStatic=pDC->GetWindow();
	//得到pDC的窗口的Font;
	LOGFONT logFont;
	CFont *pFont=wndStatic->GetFont();
	pFont->GetLogFont(&logFont);
	//更改Font
	CFont font;
	//画图
	pDC->SetBkColor(RGB(0,0,0));
	if(strInfo=="title"){
		lstrcpy(logFont.lfFaceName,TEXT("楷体_GB2312"));
		logFont.lfHeight=16;
		logFont.lfWeight=FW_BOLD;
		font.CreateFontIndirect(&logFont);
		pDC->SelectObject(&font);
        pDC->SetTextColor(RGB(0,230,0));
		pDC->SetBkColor(APPStatic::colorDlg);
		CString strText;
		wndStatic->GetWindowText(strText);
		pDC->TextOut(0,0,strText);
	}else if(strInfo=="engTitle"){		
		lstrcpy(logFont.lfFaceName,TEXT("宋体"));
		logFont.lfHeight=13;
		//logFont.lfWeight=FW_BOLD;
		font.CreateFontIndirect(&logFont);
		pDC->SelectObject(&font);
        pDC->SetTextColor(RGB(0,220,0));
		pDC->SetBkColor(APPStatic::colorDlg);
		CString strText;
		wndStatic->GetWindowText(strText);
		pDC->TextOut(0,0,strText);
	}
    else{
		lstrcpy(logFont.lfFaceName,TEXT("System"));
		logFont.lfHeight=20;
		logFont.lfWeight=FW_BOLD;
		font.CreateFontIndirect(&logFont);
		pDC->SelectObject(&font);
		pDC->SetTextColor(RGB(255,255,1));
		pDC->SetBkColor(APPStatic::colorDlg);
		pDC->TextOut(0,0,"                   ");//先刷一次空格
		pDC->TextOut(0,0,strInfo);
    }
}

⌨️ 快捷键说明

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