www.pudn.com > MFCVista.rar > MFCVistaDlg.cpp


// MFCVistaDlg.cpp : 实现文件 
// 
 
#include "stdafx.h" 
#include "MFCVista.h" 
#include "MFCVistaDlg.h" 
#include ".\mfcvistadlg.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#endif 
 
 
// 用于应用程序“关于”菜单项的 CAboutDlg 对话框 
 
class CAboutDlg : public CDialog 
{ 
public: 
	CAboutDlg(); 
 
// 对话框数据 
	enum { IDD = IDD_ABOUTBOX }; 
 
	protected: 
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持 
 
// 实现 
protected: 
	DECLARE_MESSAGE_MAP() 
}; 
 
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) 
{ 
} 
 
void CAboutDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
} 
 
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) 
END_MESSAGE_MAP() 
 
 
// CMFCVistaDlg 对话框 
 
 
 
CMFCVistaDlg::CMFCVistaDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CMFCVistaDlg::IDD, pParent) 
{ 
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); 
	m_fntSys.CreateFont(12,0,0,0,0,0,0,0,1,0,0,0,0,"宋体"); 
} 
 
void CMFCVistaDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	DDX_Control(pDX, IDC_BUTTON1, m_btnDemoButton1); 
	DDX_Control(pDX, IDC_BUTTON2, m_btnDemoButton2); 
	DDX_Control(pDX, IDC_CHECK1, m_btnCheckBox1); 
	DDX_Control(pDX, IDC_CHECK2, m_btnCheckBox2); 
	DDX_Control(pDX, IDC_CHECK3, m_btnCheckBox3); 
	DDX_Control(pDX, IDC_RADIO1, m_rdoArr[0]); 
	DDX_Control(pDX, IDC_RADIO2, m_rdoArr[1]); 
	DDX_Control(pDX, IDC_RADIO3, m_rdoArr[2]); 
	DDX_Control(pDX, IDC_COMBO1, m_comList); 
	DDX_Control(pDX, IDC_BUTTON3, m_btnClose); 
	DDX_Control(pDX, IDC_TEXT_NAME, m_textName); 
	DDX_Control(pDX, IDC_EDIT_NAME, m_editName); 
	DDX_Control(pDX, IDC_TEXT_OLD, m_textOld); 
	DDX_Control(pDX, IDC_EDIT_OLD, m_editOld); 
	DDX_Control(pDX, IDC_TEXT_WEIGHT, m_textWeight); 
	DDX_Control(pDX, IDC_EDIT_WEIGHT, m_editWeight); 
	DDX_Control(pDX, IDC_TEXT_MARRIAGE, m_textMarriage); 
	DDX_Control(pDX, IDC_EDIT_MARRIAGE, m_editMarriage); 
	DDX_Control(pDX, IDC_TEXT_HEIGHT, m_textHeight); 
	DDX_Control(pDX, IDC_EDIT_HEIGHT, m_editHeight); 
	DDX_Control(pDX, IDC_TREE1, m_treeCtrl); 
	DDX_Control(pDX, IDC_LIST, m_lstInfo); 
} 
 
BEGIN_MESSAGE_MAP(CMFCVistaDlg, CDialog) 
	ON_WM_SYSCOMMAND() 
	ON_WM_PAINT() 
	ON_WM_QUERYDRAGICON() 
	//}}AFX_MSG_MAP 
	ON_WM_ERASEBKGND() 
	ON_WM_NCHITTEST() 
	ON_BN_CLICKED(IDC_BUTTON3, OnBnClickedButton3) 
	ON_NOTIFY(NM_DBLCLK, IDC_LIST, OnNMDblclkList) 
	ON_NOTIFY(NM_DBLCLK, IDC_TREE1, OnNMDblclkTree1) 
END_MESSAGE_MAP() 
 
 
// CMFCVistaDlg 消息处理程序 
 
BOOL CMFCVistaDlg::OnInitDialog() 
{ 
	CDialog::OnInitDialog(); 
 
	// 将\“关于...\”菜单项添加到系统菜单中。 
 
	// IDM_ABOUTBOX 必须在系统命令范围内。 
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); 
	ASSERT(IDM_ABOUTBOX < 0xF000); 
 
	CMenu* pSysMenu = GetSystemMenu(FALSE); 
	if (pSysMenu != NULL) 
	{ 
		CString strAboutMenu; 
		strAboutMenu.LoadString(IDS_ABOUTBOX); 
		if (!strAboutMenu.IsEmpty()) 
		{ 
			pSysMenu->AppendMenu(MF_SEPARATOR); 
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); 
		} 
	} 
 
	// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 
	//  执行此操作 
	SetIcon(m_hIcon, TRUE);			// 设置大图标 
	SetIcon(m_hIcon, FALSE);		// 设置小图标 
	Load(this,1); 
	m_textName.SetAtt(); 
	m_editName.SetAtt(); 
	m_treeCtrl.SetAtt(IDB_BMP_TREE,IDB_BITMAP1); 
	m_treeCtrl.SetTextColor(RGB(255,255,255)); 
	m_treeCtrl.FindFileToTree("F:\\mp3"); 
	m_textHeight.SetAtt(); 
	m_editHeight.SetAtt(); 
	m_editHeight.SetWindowText("165 CM"); 
	m_editName.SetWindowText("翼龙"); 
	m_textOld.SetAtt(); 
	m_editMarriage.SetAtt(); 
	m_editMarriage.SetWindowText("未婚"); 
	m_textWeight.SetAtt(); 
	m_textMarriage.SetAtt(); 
	m_editWeight.SetAtt(); 
	m_editWeight.SetWindowText("58 Kg"); 
	m_editOld.SetAtt(); 
	m_editOld.SetWindowText("24"); 
	m_btnDemoButton1.SetAtt(0,0,IDB_XPBUTTON,0); 
	m_btnClose.SetAtt(0,0,IDB_CLOSEBUTTON,0); 
	m_btnClose.SetToolTip("关闭"); 
	m_btnDemoButton2.SetAtt(0,0,IDB_XPBUTTON,0,IDB_BTN_BUTTON,15); 
	m_btnDemoButton2.SetToolTip("按钮2"); 
	m_btnCheckBox1.SetAtt(IDB_CHECKBOX); 
	m_btnCheckBox2.SetAtt(IDB_CHECKBOX); 
	m_btnCheckBox3.SetAtt(IDB_CHECKBOX); 
	m_comList.SetAtt(IDB_COMBOBOX,IDB_BITMAP2); 
	m_comList.MoveWH(0,3); 
	m_comList.CComboBox::AddString("New Item1"); 
	m_comList.CComboBox::AddString("New Item2"); 
	m_comList.CComboBox::AddString("New Item3"); 
	m_comList.CComboBox::AddString("New Item4"); 
	m_comList.SetCurSel(0); 
	int list[3]={IDC_RADIO1,IDC_RADIO2,IDC_RADIO3}; 
	m_rdoArr[0].SetAtt(IDB_RADIOBUTTON,list,3,m_rdoArr,1,0,0,RGB(237,237,237)); 
	m_rdoArr[1].SetAtt(IDB_RADIOBUTTON,list,3,m_rdoArr,0,0,0,RGB(237,237,237)); 
	m_rdoArr[2].SetAtt(IDB_RADIOBUTTON,list,3,m_rdoArr,0,0,0,RGB(237,237,237)); 
	m_lstInfo.SetFont(&m_fntSys); 
	m_lstInfo.SetBkColor(RGB(57,68,114)); 
	m_lstInfo.SetAtt(0,0);	 
	m_lstInfo.InsertColumn(0,"文件名",0,120); 
	m_lstInfo.InsertColumn(1,"文件大小",0,195); 
	m_lstInfo.InsertItem(0,"霸王别姬.mp3"); 
	m_lstInfo.SetItemText(0,1,"6,067 KB"); 
	m_lstInfo.InsertItem(1,"大女人.mp3"); 
	m_lstInfo.SetItemText(1,1,"3,545 KB"); 
	m_lstInfo.InsertItem(2,"感动.mp3"); 
	m_lstInfo.SetItemText(2,1,"5,611 KB"); 
	m_lstInfo.InsertItem(3,"花心.mp3"); 
	m_lstInfo.SetItemText(3,1,"5,373 KB"); 
	m_lstInfo.InsertItem(4,"羊皮人.mp3"); 
	m_lstInfo.SetItemText(4,1,"6,290 KB"); 
	m_lstInfo.InsertItem(5,"今天.mp3"); 
	m_lstInfo.SetItemText(5,1,"4,502 KB");	 
 
 
	m_bkImage.LoadBitmap(IDB_BKIMAGE); 
	m_bkImage.GetBitmap(&m_infoImage); 
	MoveWindowEx(-1,-1,m_infoImage.bmWidth,m_infoImage.bmHeight); 
	SetWindowRgn(BmpToHrgn(m_bkImage,0),true); 
	SetWindowText("另类控件演示"); 
	return TRUE;  // 除非设置了控件的焦点,否则返回 TRUE 
} 
 
void CMFCVistaDlg::OnSysCommand(UINT nID, LPARAM lParam) 
{ 
	if ((nID & 0xFFF0) == IDM_ABOUTBOX) 
	{ 
		CAboutDlg dlgAbout; 
		dlgAbout.DoModal(); 
	} 
	else 
	{ 
		CDialog::OnSysCommand(nID, lParam); 
	} 
} 
 
// 如果向对话框添加最小化按钮,则需要下面的代码 
//  来绘制该图标。对于使用文档/视图模型的 MFC 应用程序, 
//  这将由框架自动完成。 
 
void CMFCVistaDlg::OnPaint()  
{ 
	if (IsIconic()) 
	{ 
		CPaintDC dc(this); // 用于绘制的设备上下文 
 
		SendMessage(WM_ICONERASEBKGND, reinterpret_cast(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 
	{ 
		CDialog::OnPaint(); 
	} 
} 
 
//当用户拖动最小化窗口时系统调用此函数取得光标显示。 
HCURSOR CMFCVistaDlg::OnQueryDragIcon() 
{ 
	return static_cast(m_hIcon); 
} 
 
BOOL CMFCVistaDlg::OnEraseBkgnd(CDC* pDC) 
{ 
	CDC dc; 
	dc.CreateCompatibleDC(pDC); 
	dc.SelectObject(m_bkImage); 
	pDC->BitBlt(0,0,m_infoImage.bmWidth,m_infoImage.bmHeight,&dc,0,0,SRCCOPY); 
	return TRUE; 
} 
 
UINT CMFCVistaDlg::OnNcHitTest(CPoint point) 
{ 
	// TODO: 在此添加消息处理程序代码和/或调用默认值 
 
	return HTCAPTION; 
} 
 
void CMFCVistaDlg::OnBnClickedButton3() 
{ 
	OnOK(); 
} 
 
void CMFCVistaDlg::OnNMDblclkList(NMHDR *pNMHDR, LRESULT *pResult) 
{ 
	CString strSel; 
	int iCurSel=m_lstInfo.GetSelectedItem(); 
	if(iCurSel==-1) 
		return ; 
	MessageBox("这首歌\""+m_lstInfo.GetItemText(iCurSel,0)+"\"想听么?","听歌"); 
	WinExec("\"C:\\Program Files\\Windows Media Player\\wmplayer.exe\" \"E:\\Works\\Music\\New Folder\\ストーリーは突然に.mp3\"",0); 
	*pResult = 0; 
} 
//13564391129 
 
void CMFCVistaDlg::OnNMDblclkTree1(NMHDR *pNMHDR, LRESULT *pResult) 
{ 
	HTREEITEM h=m_treeCtrl.GetSelectedItem(); 
	if(!h) 
		return ; 
	int i; 
	m_treeCtrl.GetItemImage(h,i,i); 
	if(i<2) 
		return ; 
	WinExec("\"C:\\Program Files\\Windows Media Player\\wmplayer.exe\" \"F:\\"+m_treeCtrl.GetPathFromTree(h)+"\"",0); 
	*pResult = 0; 
}