内容发布更新时间 : 2025/7/16 19:43:36星期一 下面是文章的全部内容请认真阅读。
// 签名类成员函数
void CSignal::SetValue(CString signal, CPoint point, COLORREF color,
int escapement, LOGFONT *pfont) {
m_strSignal = signal; m_pointSignal = point; m_colorSignal = color;
memcpy(&m_fontSignal, pfont, sizeof(LOGFONT)); m_fontSignal.lfEscapement = escapement; }
// 显示签名
void CSignal::ShowSignal(CDC *pDC) {
CFont font, *pOldFont;
font.CreateFontIndirect(&m_fontSignal); pOldFont = pDC->SelectObject(&font); pDC->SetTextColor(m_colorSignal); pDC->TextOut(m_pointSignal.x, m_pointSignal.y,
m_strSignal);
pDC->SelectObject(pOldFont); }
// 框架窗口类 #define MAX_NAME 250
class CMyWnd: public CFrameWnd {
CSignal m_signalList[MAX_NAME]; // 签名数组 int m_nCount; // 签名数量
LOGFONT m_fontSignal; // 签名字体 COLORREF m_colorSignal; // 签名颜色 public: CMyWnd(); protected:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnRButtonDown(UINT nFlags, CPoint point); afx_msg void OnPaint(); DECLARE_MESSAGE_MAP() };
// 消息映射
BEGIN_MESSAGE_MAP(CMyWnd, CFrameWnd) ON_WM_LBUTTONDOWN() ON_WM_RBUTTONDOWN() ON_WM_PAINT() END_MESSAGE_MAP() // 框架窗口类的成员函数 CMyWnd::CMyWnd() {
m_nCount = 0;
m_colorSignal = RGB(0, 0, 0); m_fontSignal.lfHeight = 40; m_fontSignal.lfWidth = 0; m_fontSignal.lfEscapement = 0; m_fontSignal.lfOrientation = 0; m_fontSignal.lfWeight = 400; m_fontSignal.lfItalic = FALSE; m_fontSignal.lfUnderline = FALSE; m_fontSignal.lfStrikeOut = 0;
m_fontSignal.lfCharSet = OEM_CHARSET;
m_fontSignal.lfOutPrecision = OUT_DEFAULT_PRECIS; m_fontSignal.lfClipPrecision = CLIP_DEFAULT_PRECIS; m_fontSignal.lfQuality = DEFAULT_QUALITY; m_fontSignal.lfPitchAnd