dropdownsampledlg.cpp

来自「windows ce开发技巧与实例光盘代码」· C++ 代码 · 共 90 行

CPP
90
字号
// DropDownSampleDlg.cpp : implementation file
//

#include "stdafx.h"
#include "DropDownSample.h"
#include "DropDownSampleDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDropDownSampleDlg dialog

CDropDownSampleDlg::CDropDownSampleDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CDropDownSampleDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDropDownSampleDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CDropDownSampleDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDropDownSampleDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CDropDownSampleDlg, CDialog)
	//{{AFX_MSG_MAP(CDropDownSampleDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDropDownSampleDlg message handlers

CRect rect;

void AddDropDown(CCeCommandBar *pCb, int nButtonIndex)
{
	CToolBarCtrl *pToolbar = &pCb->GetToolBarCtrl();

	TBBUTTON but;
	pToolbar->GetButton(nButtonIndex, &but);
	pToolbar->DeleteButton(nButtonIndex);
	but.fsStyle = but.fsStyle | TBSTYLE_DROPDOWN;
	pToolbar->InsertButton(nButtonIndex, &but);

	pCb->SetSizes(CSize(23,21), CSize(16,15));
	pToolbar->GetItemRect(nButtonIndex, &rect);
	pToolbar->ClientToScreen(&rect);
};

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

	SetIcon(m_hIcon, TRUE);
	SetIcon(m_hIcon, FALSE);
	
	CenterWindow(GetDesktopWindow());

	CCeCommandBar *pCommandBar = (CCeCommandBar*)m_pWndEmptyCB;
	pCommandBar->LoadToolBar(IDR_TOOLBAR);
	AddDropDown(pCommandBar, 1);
	
	return TRUE;
}


BOOL CDropDownSampleDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) 
{
	NMTOOLBAR* lpnm = (NMTOOLBAR*) lParam;

	if (lpnm->hdr.code == TBN_DROPDOWN) {
		CMenu menu;
		menu.LoadMenu(IDR_POPUP);
		CMenu *pMenu = menu.GetSubMenu(0);
		pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_BOTTOMALIGN, rect.left, rect.top-1, this, NULL);
	}
	
	return CDialog::OnNotify(wParam, lParam, pResult);
}

⌨️ 快捷键说明

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