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

📄 selectlist.cpp

📁 魅族M8 LED源码 wince的。。。需要的下
💻 CPP
字号:
#include "SelectList.h"
#include "resource.h"
#include "LedEmuSetup.h"
#include <readwriteini.h>

CSelectList::CSelectList(void)
{
}

CSelectList::~CSelectList(void)
{
}

BOOL CSelectList::OnInitDialog()
{
	// Must all the Init of parent class first!
	if (!CMzWndEx::OnInitDialog())
	{
		return FALSE;
	}

    m_Toolbar.SetPos(0,GetHeight()-MZM_HEIGHT_TEXT_TOOLBAR,GetWidth(),MZM_HEIGHT_TEXT_TOOLBAR);
    m_Toolbar.SetButton(0, true, true, L"返回");
    m_Toolbar.SetID(ID_SELECTLIST_TOOL);
	m_Toolbar.EnableLeftArrow(true);

	m_SelectList.SetPos(0,TITLE_HEIGHT,GetWidth(),GetHeight()-MZM_HEIGHT_TEXT_TOOLBAR-TITLE_HEIGHT);
    m_SelectList.SetID(ID_SELECT_LIST);
    m_SelectList.EnableNotifyMessage(true);

	m_Caption.SetPos(0,0,GetWidth(),TITLE_HEIGHT);
	m_Caption.SetText(L"选择预置的选项");

	LoadListFromIni();

	SetAnimateType_Show(MZ_ANIMTYPE_FADE);
	SetAnimateType_Hide(MZ_ANIMTYPE_FADE);

	AddUiWin(&m_Toolbar);
	AddUiWin(&m_SelectList);
	AddUiWin(&m_Caption);
	return TRUE;
}

void CSelectList::OnMzCommand(WPARAM wParam, LPARAM lParam)
{
	UINT_PTR id = LOWORD(wParam);
	int nIndex;

	switch(id)
	{
	case ID_SELECTLIST_TOOL:
        nIndex = lParam;
        switch(nIndex)
		{
		case 0:
			//swprintf_s(AppString,20,L"LastSelect",SelectID);
			IniWriteInt(L"LastSelect",L"Select",LastSelect,IniName);

			EndModal(ID_OK);
			break;
		}
		break;
	}
}

LRESULT CSelectList::MzDefWndProc(UINT message, WPARAM wParam, LPARAM lParam)
{
	//CMzString str(128);
	switch(message)
	{
		// process the mouse notify message
	case MZ_WM_MOUSE_NOTIFY:
		{
			int nID = LOWORD(wParam);
			int nNotify = HIWORD(wParam);
			int x = LOWORD(lParam);
			int y = HIWORD(lParam);

			int IndexSave;

			// process the mouse left button down notification
			if(nID==ID_SELECT_LIST)
			{
				if ((nNotify==MZ_MN_LBUTTONDOWN)||(nNotify==MZ_MN_LBUTTONDBLCLK))
				{
					if (!m_SelectList.IsMouseDownAtScrolling() && !m_SelectList.IsMouseMoved())
					{
						if(x < (GetWidth()/2))
						{
							
							IndexSave = m_SelectList.CalcIndexOfPos(x, y);
							if((IndexSave != -1) && (IndexSave !=LastSelect))
							{
								LastSelect = IndexSave;
								m_SelectList.SetCurrentSel(LastSelect);
								IniWriteInt(L"LastSelect",L"Select",LastSelect,IniName);
							}
						}
						else
						{
							int nIndex = m_SelectList.CalcIndexOfPos(x, y);
							m_SelectList.SetSelectedIndex(nIndex);
						}
						m_SelectList.Invalidate();
						m_SelectList.Update();
					}
				}

				else if(nNotify==MZ_MN_LBUTTONUP)
				{
					int n;
					if((n = m_SelectList.GetSelectedIndex()) != -1 && (x >= (GetWidth()/2)))
					{
						//str = m_SelectList.GetItem(n)->Text;
						//MzMessageBoxEx(m_hWnd,str.C_Str(), L"Test", MB_OK);
						CLedEmuSetup dlg;
						dlg.SetIniFileName(IniName);
						dlg.SetEditItem(n);
						RECT rcWork;
						rcWork = MzGetWorkArea();
						rcWork.top = 0;
						dlg.Create(rcWork.left,rcWork.top,RECT_WIDTH(rcWork),RECT_HEIGHT(rcWork), m_hWnd, 0, WS_POPUP);
						dlg.DoModal();
						m_SelectList.RemoveAll();
						LoadListFromIni();
					}
				}

				else if (nNotify==MZ_MN_MOUSEMOVE)
				{
					m_SelectList.SetSelectedIndex(-1);
					m_SelectList.Invalidate();
					m_SelectList.Update();
				}

				return 0;
			}
		}
		return 0;
	}
	return CMzWndEx::MzDefWndProc(message,wParam,lParam);
}

//设定INI文件名
void CSelectList::SetIniFileName(wchar_t *p)
{
	IniName = p;
}
void CSelectList::LoadListFromIni()
{
	wchar_t AppString[20];
    CMzString str(128);
    wchar_t buf[128];
    ListItem li;
	int i;

	int Type,Color;
	UserReadIniData(&LastSelect,L"LastSelect",L"Select",0,IniName);//选择第一个

	//从INI中读取设置
	for(i = 0;i < MAX_PRESENT_ITEM;i++)
	{
		swprintf_s(AppString,20,L"Setting%02d",i);
		UserReadIniData(&Type,AppString,L"Type",0,IniName);//默认为字串
		if(Type != 0)
		{
			UserReadIniString(buf,128,AppString,L"Picture",L"",IniName);//默认没有
		}
		else
		{
			UserReadIniString(buf,128,AppString,L"String",L"示例字串",IniName);//显示示例字串
		}
		UserReadIniData(&Color,AppString,L"Color",0,IniName);//默认为红色
		wcscpy_s(str.C_Str(),128,buf);

		li.Text = str;
		li.Data = (void *)((Color&0xff)+((Type&0xff)<<8));//把Data当数据来传递
		m_SelectList.AddItem(li);
	}

	m_SelectList.SetCurrentSel(LastSelect);
}

⌨️ 快捷键说明

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