| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- // TcStaticDlg.cpp : 实现文件
- //
- #include "stdafx.h"
- #include "tcStatic.h"
- #include "TcStaticDlg.h"
- #include "DlgProxy.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #endif
- // TcStaticDlg 对话框
- IMPLEMENT_DYNAMIC(TcStaticDlg, CDialog);
- TcStaticDlg::TcStaticDlg(CWnd* pParent /*=NULL*/)
- : CDialog(TcStaticDlg::IDD, pParent)
- {
- EnableActiveAccessibility();
- m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
- m_pAutoProxy = NULL;
- m_bBackground = true;
- m_Count_One = 0;
- m_Count_Two = 0;
- }
- TcStaticDlg::~TcStaticDlg()
- {
- // 如果该对话框有自动化代理,则
- // 将此代理指向该对话框的后向指针设置为 NULL,以便
- // 此代理知道该对话框已被删除。
- if (m_pAutoProxy != NULL)
- m_pAutoProxy->m_pDialog = NULL;
- }
- void TcStaticDlg::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_STATIC_ONE, m_MyText_One);
- DDX_Control(pDX, IDC_STATIC_TWO, m_MyText_Two);
- }
- BEGIN_MESSAGE_MAP(TcStaticDlg, CDialog)
- ON_WM_CLOSE()
- ON_WM_PAINT()
- ON_WM_QUERYDRAGICON()
- //}}AFX_MSG_MAP
- ON_BN_CLICKED(IDC_FIRST, &TcStaticDlg::OnBnClickedFirst)
- ON_BN_CLICKED(IDC_SECOND, &TcStaticDlg::OnBnClickedSecond)
- END_MESSAGE_MAP()
- // TcStaticDlg 消息处理程序
- BOOL TcStaticDlg::OnInitDialog()
- {
- CDialog::OnInitDialog();
- // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
- // 执行此操作
- SetIcon(m_hIcon, TRUE); // 设置大图标
- SetIcon(m_hIcon, FALSE); // 设置小图标
- // TODO: 在此添加额外的初始化代码
- //tc:第一个静态文本框相关设置
- m_MyText_One.SetTextColor(RGB(254,254,254)); //tc:设置文本颜色
- m_MyText_One.SetMyFont(15,_T("Arial")); //tc:设置字体及其大小
- //tc:第二个静态文本框相关设置
- m_MyText_Two.SetTransparent(TRUE); //tc:这个类需要设置是否支持透明
- m_MyText_Two.SetTextColor(RGB(254,254,254)); //tc:设置文本颜色
- m_MyText_Two.SetFontName(_T("Arial")); //tc:设置字体
- m_MyText_Two.SetFontSize(15); //tc:设置字体大小
- return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
- }
- // 如果向对话框添加最小化按钮,则需要下面的代码
- // 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
- // 这将由框架自动完成。
- void TcStaticDlg::OnPaint()
- {
- if (IsIconic())
- {
- CPaintDC dc(this); // 用于绘制的设备上下文
- SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
- // 使图标在工作区矩形中居中
- int cxIcon = GetSystemMetrics(SM_CXICON);
- int cyIcon = GetSystemMetrics(SM_CYICON);
- CRect rect;
- GetClientRect(&rect);
- int x = (rect.Width() - cxIcon + 1) / 2;
- int y = (rect.Height() - cyIcon + 1) / 2;
- // 绘制图标
- dc.DrawIcon(x, y, m_hIcon);
- }
- else
- {
- CPaintDC dc(this);
- if(m_bBackground){
- m_bBackground = false;
- BOOL b = m_backBmp.LoadBitmap(IDB_BACKGROUND);//IDB_BACKGROUND
- b = m_backDC.CreateCompatibleDC(&dc);
- m_backDC.SelectObject(m_backBmp);
- }
- dc.BitBlt(0,0,1024,768,&m_backDC,0,0,SRCCOPY);//360,320
- CDialog::OnPaint();
- }
-
- }
- //当用户拖动最小化窗口时系统调用此函数取得光标
- //显示。
- HCURSOR TcStaticDlg::OnQueryDragIcon()
- {
- return static_cast<HCURSOR>(m_hIcon);
- }
- // 当用户关闭 UI 时,如果控制器仍保持着它的某个
- // 对象,则自动化服务器不应退出。这些
- // 消息处理程序确保如下情形: 如果代理仍在使用,
- // 则将隐藏 UI;但是在关闭对话框时,
- // 对话框仍然会保留在那里。
- void TcStaticDlg::OnClose()
- {
- if (CanExit())
- CDialog::OnClose();
- }
- void TcStaticDlg::OnOK()
- {
- if (CanExit())
- CDialog::OnOK();
- }
- void TcStaticDlg::OnCancel()
- {
- //if (CanExit())
- CDialog::OnCancel();
- }
- BOOL TcStaticDlg::CanExit()
- {
- // 如果代理对象仍保留在那里,则自动化
- // 控制器仍会保持此应用程序。
- // 使对话框保留在那里,但将其 UI 隐藏起来。
- if (m_pAutoProxy != NULL)
- {
- ShowWindow(SW_HIDE);
- return FALSE;
- }
- return TRUE;
- }
- void TcStaticDlg::OnBnClickedFirst()
- {
- // TODO: 在此添加控件通知处理程序代码
- CString str;
- str.Format(_T("第一个文本框文本变化:%d"),m_Count_One);
- m_MyText_One.SetTextColor(RGB(243,248,8));
- m_Count_One++;
- m_MyText_One.SetText(str);
- m_MyText_One.SetMyFont(35,_T("楷体_GB2312"));
- }
- void TcStaticDlg::OnBnClickedSecond()
- {
- // TODO: 在此添加控件通知处理程序代码
- CString str;
- str.Format(_T("第二个文本框文本变化:%d"),m_Count_Two);
- m_Count_Two++;
- m_MyText_Two.SetText(str);
- m_MyText_Two.SetTextColor(RGB(243,248,8));
- m_MyText_Two.SetFontName(_T("楷体_GB2312"));
- m_MyText_Two.SetFontSize(25);
- }
|