⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 titlebardlg.cpp

📁 一个有VC++开发的计算建筑工程行业软件 可以计算挖孔桩的方量,方格网的计算,支持保存和加载数据
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// TitleBarDlg.cpp : implementation file
//

#include "stdafx.h"
#include "TitleBar.h"
#include "TitleBarDlg.h"
#include "SetCSDlg.h"
#include "AboutDlg.h"
#include "countdemo.h"
#include "gjwight.h"

#include <fstream.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CString g_strAppPath;
/////////////////////////////////////////////////////////////////////////////
// CTitleBarDlg dialog

CTitleBarDlg::CTitleBarDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CTitleBarDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTitleBarDlg)
	PreLh=_T("");
	PreZdh=_T("");
	m_demo = _T("");
	m_h0 = 0.0;
	m_psh = 0.0;
	m_ssh = 0.0;
	m_th = 0.0;
	m_thbh = 0.0;
	m_zbuttom = 0.0;
	m_zhbh = 0.0;
	m_ztop = 0.0;
	m_sum_psf = 0.0;
	m_sum_ssf = 0.0;
	m_sum_gjwight = 0.0;
	m_sum_tf = 0.0;
	m_sum_thb = 0.0;
	m_sum_zct = 0.0;
	m_sum_zhb = 0.0;
	m_wzstr = _T("");
	m_num = _T("");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CTitleBarDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTitleBarDlg)
	DDX_Control(pDX, ID_PRINTER, m_printer);
	DDX_Control(pDX, IDC_BTN_SHOWGJ, m_btnshowgj);
	DDX_Control(pDX, IDC_BTN_COUNTDEMO, m_btncountdemo);
	DDX_Control(pDX, IDOK, m_btnok);
	DDX_Control(pDX, IDC_BTN_SETCS, m_btnsetcs);
	DDX_Control(pDX, IDC_BTN_DELDATA, m_btndeldata);
	DDX_Control(pDX, IDC_BTN_ADDDATA, m_btnadddata);
	DDX_Control(pDX, IDC_BUTTON_HELP, m_btnhelp);
	DDX_Control(pDX, IDC_BTN_COUNT, m_btncount);
	DDX_Control(pDX, IDC_COUNTDATA, m_countdataList);
	DDX_Control(pDX, IDC_OPEDATA, m_opedataList);
	DDX_Control(pDX, IDC_ZDHCOMBO, m_zdhcombo);
	DDX_Control(pDX, IDC_LHCOMBO, m_lhcombo);
	DDX_Text(pDX, IDC_EDIT_DEMO, m_demo);
	DDX_Text(pDX, IDC_EDIT_H0, m_h0);
	DDX_Text(pDX, IDC_EDIT_PSH, m_psh);
	DDX_Text(pDX, IDC_EDIT_SSH, m_ssh);
	DDX_Text(pDX, IDC_EDIT_TH, m_th);
	DDX_Text(pDX, IDC_EDIT_THBH, m_thbh);
	DDX_Text(pDX, IDC_EDIT_ZBUTTOM, m_zbuttom);
	DDX_Text(pDX, IDC_EDIT_ZHBH, m_zhbh);
	DDX_Text(pDX, IDC_EDIT_ZTOP, m_ztop);
	DDX_Text(pDX, IDC_SUM_FSF, m_sum_psf);
	DDX_Text(pDX, IDC_SUM_SSF, m_sum_ssf);
	DDX_Text(pDX, IDC_SUM_GJ, m_sum_gjwight);
	DDX_Text(pDX, IDC_SUM_TF, m_sum_tf);
	DDX_Text(pDX, IDC_SUM_THB, m_sum_thb);
	DDX_Text(pDX, IDC_SUM_ZCT, m_sum_zct);
	DDX_Text(pDX, IDC_SUM_ZHB, m_sum_zhb);
	DDX_Text(pDX, IDC_EDIT_WZ, m_wzstr);
	DDX_Text(pDX, IDC_EDIT_NUM, m_num);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CTitleBarDlg, CDialog)
	//{{AFX_MSG_MAP(CTitleBarDlg)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_WM_NCLBUTTONDOWN()
	ON_WM_NCMOUSEMOVE()
	ON_BN_CLICKED(IDC_BTN_SETCS, OnBtnReSetcs)
	ON_BN_CLICKED(IDC_BUTTON_HELP, OnButtonHelp)
	ON_BN_CLICKED(IDC_BTN_ADDDATA, OnBtnAdddata)
	ON_BN_CLICKED(IDC_BTN_DELDATA, OnBtnDeldata)
	ON_BN_CLICKED(IDC_BTN_COUNT, OnBtnCount)
	ON_WM_CLOSE()
	ON_BN_CLICKED(IDC_BTN_COUNTDEMO, OnBtnCountdemo)
	ON_BN_CLICKED(IDC_BTN_SHOWGJ, OnBtnShowgj)
	ON_BN_CLICKED(ID_PRINTER, OnPrinter)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTitleBarDlg message handlers

BOOL CTitleBarDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// 为主对话框设置图标.  
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	m_btncount.SubclassDlgItem(IDI_COUNT1, this);
    m_btncount.SetIcon(IDI_COUNT2, IDI_COUNT1); // 32x32 图标
    m_btnadddata.SubclassDlgItem(IDI_ADD1, this);
    m_btnadddata.SetIcon(IDI_ADD2, IDI_ADD1); // 32x32 图标
    m_btndeldata.SubclassDlgItem(IDI_DEL1, this);
    m_btndeldata.SetIcon(IDI_DEL2, IDI_DEL1); // 32x32 图标
    m_btnhelp.SubclassDlgItem(IDI_HELP1, this);
    m_btnhelp.SetIcon(IDI_HELP2, IDI_HELP1); // 32x32 图标
    m_btnsetcs.SubclassDlgItem(IDI_SET1, this);
    m_btnsetcs.SetIcon(IDI_SET2, IDI_SET1); // 32x32 图标
    m_btnok.SubclassDlgItem(IDI_EXET1, this);
    m_btnok.SetIcon(IDI_EXIT2, IDI_EXET1); // 32x32 图标
    m_btncountdemo.SubclassDlgItem(IDI_SEE1, this);
    m_btncountdemo.SetIcon(IDI_SEE2, IDI_SEE1); // 32x32 图标
    m_btnshowgj.SubclassDlgItem(IDI_GJ1, this);
    m_btnshowgj.SetIcon(IDI_GJ2, IDI_GJ1); // 32x32 图标
    m_printer.SubclassDlgItem(IDI_PRINT1, this);
    m_printer.SetIcon(IDI_PRINT2, IDI_PRINT1); // 32x32 图标
	// 以上初始化主对话框中的和控件内容
    //m_playavi.Open(IDR_AVI1); 
    //初始化原始数据列表框
	
   //CRect	rect;
   //GetClientRect(rect);
	m_opedataList.InsertColumn ( 0, "楼号", LVCFMT_CENTER, 40);
	m_opedataList.InsertColumn ( 1, "桩位置", LVCFMT_LEFT,50);
	m_opedataList.InsertColumn ( 2, "桩代号", LVCFMT_LEFT,50);
	m_opedataList.InsertColumn ( 3, "自然标高", LVCFMT_LEFT, 60);
	m_opedataList.InsertColumn ( 4, "桩顶标高", LVCFMT_LEFT, 60);
	m_opedataList.InsertColumn ( 5, "桩底标高", LVCFMT_LEFT, 60);
	m_opedataList.InsertColumn ( 6, "土层深", LVCFMT_LEFT,60);
    m_opedataList.InsertColumn ( 7, "松次坚石深", LVCFMT_LEFT,60);
	m_opedataList.InsertColumn ( 8, "普坚石深", LVCFMT_LEFT,60);
	m_opedataList.InsertColumn ( 9, "砖护壁高", LVCFMT_LEFT, 60);
	m_opedataList.InsertColumn ( 10, "砼护壁高", LVCFMT_LEFT, 60);
	m_opedataList.InsertColumn ( 11, "备注", LVCFMT_LEFT,45);

	m_countdataList.InsertColumn ( 0, "楼号", LVCFMT_CENTER, 40);
	m_countdataList.InsertColumn ( 1, "桩位置", LVCFMT_LEFT,50);
	m_countdataList.InsertColumn ( 2, "桩代号", LVCFMT_LEFT,60);
	m_countdataList.InsertColumn ( 3, "砖护壁方量", LVCFMT_LEFT, 60);
	m_countdataList.InsertColumn ( 4, "砼护壁方量", LVCFMT_LEFT, 60);
	m_countdataList.InsertColumn ( 5, "土方量", LVCFMT_LEFT,60);
	m_countdataList.InsertColumn ( 6, "松次坚石方量", LVCFMT_LEFT,60);
	m_countdataList.InsertColumn ( 7, "普坚石方量", LVCFMT_LEFT,60);
	m_countdataList.InsertColumn ( 8, "桩身砼方量", LVCFMT_LEFT,60);
	m_countdataList.InsertColumn ( 9, "钢筋方量", LVCFMT_LEFT, 60);
	m_countdataList.InsertColumn ( 10, "备注", LVCFMT_LEFT,60);
    
    InitCS();   //从文件CS中读出当前参数值
	AddItems1();

	//CTitleBarDlg::UpdateData(TRUE); 
	return TRUE;  // return TRUE  unless you set the focus to a control
}


void CTitleBarDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		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;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CTitleBarDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

LRESULT CTitleBarDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	LRESULT lrst=CDialog::DefWindowProc(message, wParam, lParam);
	
	if (!::IsWindow(m_hWnd))
		return lrst;
	
	if (message==WM_MOVE||message==WM_PAINT||message==WM_NCPAINT||message==WM_NCACTIVATE ||message == WM_NOTIFY)
	{
		CDC* pWinDC = GetWindowDC();
		if (pWinDC)
			DrawTitleBar(pWinDC);
		ReleaseDC(pWinDC);
	}
	return lrst;
}

void CTitleBarDlg::OnNcLButtonDown(UINT nHitTest, CPoint point) 
{
	//检测各按钮是否按到
	if (m_rtIcon.PtInRect(point))
		MessageBox("欢迎使用罗伟的软件作品,请将软件中的问题即时返馈回作者以便改进,谢谢!!!","提示");
	else if (m_rtButtHelp.PtInRect(point))
		SendMessage(WM_HELP);
	else if (m_rtButtExit.PtInRect(point))
		SendMessage(WM_CLOSE);
	else if (m_rtButtMin.PtInRect(point))
		SendMessage(WM_SYSCOMMAND, SC_MINIMIZE, MAKELPARAM(point.x, point.y));
	else if (m_rtButtMax.PtInRect(point))
	{
		if (IsZoomed())
			SendMessage(WM_SYSCOMMAND, SC_RESTORE, MAKELPARAM(point.x, point.y));
		else
		{
			SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE, MAKELPARAM(point.x, point.y));
			Invalidate();
		}
	}
	else if (!IsZoomed())
		Default();
}

void CTitleBarDlg::OnNcMouseMove(UINT nHitTest, CPoint point) 
{
	CDC* pDC = GetWindowDC();
	CDC* pDisplayMemDC=new CDC;
	pDisplayMemDC->CreateCompatibleDC(pDC);
	CBitmap* pBitmap = new CBitmap;
	CBitmap* pOldBitmap;
	CRect rtWnd, rtButton;

	if (pDC)
	{
		GetWindowRect(&rtWnd);

		//关闭button
		if (m_rtButtExit.PtInRect(point))
			pBitmap->LoadBitmap(IDB_EXIT_FOCUS);
		else
			pBitmap->LoadBitmap(IDB_EXIT_NORMAL);
		rtButton = m_rtButtExit;
		rtButton.OffsetRect(-rtWnd.left, -rtWnd.top);
		pOldBitmap=(CBitmap*)pDisplayMemDC->SelectObject(pBitmap);
		pDC->BitBlt(rtButton.left, rtButton.top, rtButton.Width(), rtButton.Height(), pDisplayMemDC, 0, 0, SRCCOPY);
		pDisplayMemDC->SelectObject(pOldBitmap);
		pBitmap->DeleteObject();

		//最大化/恢复button
		if (m_rtButtMax.PtInRect(point))
		{
			if (IsZoomed())
				pBitmap->LoadBitmap(IDB_RESTORE_FOCUS);
			else
				pBitmap->LoadBitmap(IDB_MAX_FOCUS);
		}
		else
		{
			if (IsZoomed())
				pBitmap->LoadBitmap(IDB_RESTORE_NORMAL);
			else
				pBitmap->LoadBitmap(IDB_MAX_NORMAL);
		}
		rtButton = m_rtButtMax;
		rtButton.OffsetRect(-rtWnd.left, -rtWnd.top);
		pOldBitmap=(CBitmap*)pDisplayMemDC->SelectObject(pBitmap);
		pDC->BitBlt(rtButton.left, rtButton.top, rtButton.Width(), rtButton.Height(), pDisplayMemDC, 0, 0, SRCCOPY);
		pDisplayMemDC->SelectObject(pOldBitmap);
		pBitmap->DeleteObject();

		//最小化button
		if (m_rtButtMin.PtInRect(point))
			pBitmap->LoadBitmap(IDB_MIN_FOCUS);
		else
			pBitmap->LoadBitmap(IDB_MIN_NORMAL);
		rtButton = m_rtButtMin;
		rtButton.OffsetRect(-rtWnd.left, -rtWnd.top);
		pOldBitmap=(CBitmap*)pDisplayMemDC->SelectObject(pBitmap);
		pDC->BitBlt(rtButton.left, rtButton.top, rtButton.Width(), rtButton.Height(), pDisplayMemDC, 0, 0, SRCCOPY);
		pDisplayMemDC->SelectObject(pOldBitmap);
		pBitmap->DeleteObject();

		//帮助button
		if (m_rtButtHelp.PtInRect(point))
			pBitmap->LoadBitmap(IDB_HELP_FOCUS);
		else
			pBitmap->LoadBitmap(IDB_HELP_NORMAL);
		rtButton = m_rtButtHelp;
		rtButton.OffsetRect(-rtWnd.left, -rtWnd.top);
		pOldBitmap=(CBitmap*)pDisplayMemDC->SelectObject(pBitmap);
		pDC->BitBlt(rtButton.left, rtButton.top, rtButton.Width(), rtButton.Height(), pDisplayMemDC, 0, 0, SRCCOPY);
		pDisplayMemDC->SelectObject(pOldBitmap);
		pBitmap->DeleteObject();
	}
	
	ReleaseDC(pDisplayMemDC);
	ReleaseDC(pDC);
	delete pDisplayMemDC;
	delete pBitmap;

	CDialog::OnNcMouseMove(nHitTest, point);
}

void CTitleBarDlg::DrawTitleBar(CDC *pDC)
{
	if (m_hWnd)
	{
		CBrush Brush(RGB(0,100,255));
		CBrush* pOldBrush = pDC->SelectObject(&Brush);

⌨️ 快捷键说明

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