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

📄 deskoutdlg.cpp

📁 ODBC API访问数据库的文章却少之又少。虽然用ODBC访问数据库比较麻烦
💻 CPP
字号:
// FloatBar.cpp : 实现文件
//

#include "stdafx.h"
#include "DeskOutDlg.h"
#include "FloatBar.h"
#include ".\floatbar.h"
#define IDC_BUTTON 1001
#define IDC_BUTTON_MAX 2000

// CFloatBar 对话框

IMPLEMENT_DYNAMIC(CDeskOutDlg, CDialog)

CDeskOutDlg::CDeskOutDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CDeskOutDlg::IDD, pParent)
{
	rcItem.nItemHeight = 30;
	rcItem.nItemWidth = 100;
}

CDeskOutDlg::~CDeskOutDlg()
{
	INT_PTR nCount = m_ptrArray.GetSize();
	for(int i=0; i<nCount; i++)
	{
		DESK* pDesk = (DESK*)m_ptrArray.GetAt(i);
		if(pDesk!=NULL)
		{
			delete pDesk;
			pDesk = NULL;
		}
	}
}

void CDeskOutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
}
BOOL CDeskOutDlg::AddDesk(CString strItem)
{
	static int nDesk;

	DESK* pDesk = new DESK;
	pDesk->bIsShow = FALSE;
	pDesk->wndHeader.Create(strItem, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,  
		CRect(0,0,rcItem.nItemWidth,rcItem.nItemHeight), this, IDC_BUTTON+nDesk);
	pDesk->wndHeader.SetShade(CShadeButtonST::SHS_HARDBUMP);
	pDesk->wndCleint.Create(strItem, WS_CHILD | WS_BORDER | SS_BLACKRECT, CRect(0,0,30,100), this, IDC_BUTTON+nDesk);
	m_ptrArray.Add(pDesk);

	nDesk++;
	return TRUE;
}

BEGIN_MESSAGE_MAP(CDeskOutDlg, CDialog)
	ON_WM_CREATE()
	ON_WM_SIZE()
	ON_CONTROL_RANGE( BN_CLICKED, IDC_BUTTON, IDC_BUTTON_MAX,CDeskOutDlg::OnBnCliceked)
END_MESSAGE_MAP()


// CFloatBar 消息处理程序

int CDeskOutDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CDialog::OnCreate(lpCreateStruct) == -1)
		return -1;
	return 0;
}
void CDeskOutDlg::OnSize(UINT nType, int cx, int cy)
{
	CDialog::OnSize(nType, cx, cy);
	CRect rcClient;
	GetClientRect(rcClient);
	rcItem.nItemWidth = rcClient.Width();
	INT_PTR nCount = m_ptrArray.GetSize();
	CRect itemHead(0,-rcItem.nItemHeight, rcItem.nItemWidth,0);
	CRect itemClient(0,0, rcItem.nItemWidth,0);
	for(int i=0; i<nCount; i++)
	{
		DESK* pDesk = (DESK*)m_ptrArray.GetAt(i);
		if(pDesk != NULL)
		{
			if(pDesk->bIsShow)
			{
				itemHead.top += rcItem.nItemHeight;
				itemHead.bottom = itemHead.top + rcItem.nItemHeight;

				pDesk->wndHeader.MoveWindow(&itemHead);				

				itemClient.top = itemHead.bottom;
				itemClient.bottom = itemClient.top + rcClient.Height()-nCount*rcItem.nItemHeight;
				pDesk->wndCleint.MoveWindow(itemClient);
				pDesk->wndCleint.ShowWindow(TRUE);

				itemHead.top = itemClient.bottom-rcItem.nItemHeight;
				itemHead.bottom = itemHead.top + rcItem.nItemHeight;
			}
			else
			{
				itemHead.top += rcItem.nItemHeight;
				itemHead.bottom = itemHead.top + rcItem.nItemHeight;
				pDesk->wndHeader.MoveWindow(&itemHead);

				itemClient.top = itemHead.bottom;
				itemClient.bottom = itemClient.top;
				pDesk->wndCleint.MoveWindow(&itemClient);
				pDesk->wndCleint.ShowWindow(TRUE);
			}
			pDesk->wndHeader.SetShade(CShadeButtonST::SHS_HARDBUMP);
		}	
	}
}
void CDeskOutDlg::OnBnCliceked( UINT nID )
{
	INT_PTR nCount = m_ptrArray.GetSize();
	DESK* pDesk = NULL;
	for(int i=0; i<nCount; i++)
	{
		pDesk = (DESK*)m_ptrArray.GetAt(i);
		pDesk->bIsShow = FALSE;
	}
	pDesk = (DESK*)m_ptrArray.GetAt(nID-1001);
	pDesk->bIsShow = TRUE;
	SendMessage(WM_SIZE, 0, 0);
}
BOOL CDeskOutDlg::SetCurSel(int nDesk)
{
	INT_PTR nCount = m_ptrArray.GetSize();
	if(nDesk<0)
	{
		DESK* pDesk = (DESK*)m_ptrArray.GetAt(0);
		pDesk->bIsShow = TRUE;
	}
	else if(nDesk>=nCount)
	{
		DESK* pDesk = (DESK*)m_ptrArray.GetAt(nCount-1);
		pDesk->bIsShow = TRUE;
	}
	else
	{
		DESK* pDesk = (DESK*)m_ptrArray.GetAt(nDesk);
		pDesk->bIsShow = TRUE;
	}
	return TRUE;
}

DESK* CDeskOutDlg::GetDesk(int nDesk)
{
	INT_PTR nCount = m_ptrArray.GetSize();
	DESK* pDesk = NULL;
	if(nDesk<0)
	{
		 pDesk = NULL;
	}
	else if(nDesk>=nCount)
	{
		pDesk = NULL;
	}
	else
	{
		pDesk = (DESK*)m_ptrArray.GetAt(nDesk);
	}
	return pDesk;
}

⌨️ 快捷键说明

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