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 + -
显示快捷键?