亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? searchdlg.cpp

?? 一個(gè)提示軟件
?? CPP
字號(hào):
// SearchDlg.cpp : implementation of the CSearchDlg class
//
/////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "resource.h"
#include "SearchDlg.h"
#include "FindNote.h"

CSearchDlg::CSearchDlg(CHiddenWindow * pWnd) : m_pWndParent(pWnd)
{
	ATLTRACE(_T("CSearchDlg::CSearchDlg()\n"));
	ATLASSERT(pWnd);

	m_bAutoDelete = TRUE;
}

CSearchDlg::~CSearchDlg()
{
	ATLTRACE(_T("CSearchDlg::~CSearchDlg()\n"));

	CMessageLoop* pLoop = _Module.GetMessageLoop();
	ATLASSERT(pLoop != NULL);
	pLoop->RemoveMessageFilter(this);
	pLoop->RemoveIdleHandler(this);
}

// Override GetDialogProc to provide our own DialogProc
// See "Q202110 PRB: Deleting ATL Dialog Causes Assert in Atlwin.h, Line 2281" in MSDN
WNDPROC CSearchDlg::GetDialogProc()
{
	ATLTRACE(_T("CSearchDlg::GetDialogProc()\n"));
	
	return SearchDialogProc;
}

// Our own dialog procedure that is mostly copied from
// CDialogImplBaseT<>::DialogProc() in Atlwin.h.
LRESULT CALLBACK CSearchDlg::SearchDialogProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	ATLTRACE(_T("CSearchDlg::SearchDialogProc()\n"));
	
	CSearchDlg * pThis = (CSearchDlg*)hWnd;
	// Set a ptr to this message and save the old value.
	MSG msg = { pThis->m_hWnd, uMsg, wParam, lParam, 0, { 0, 0 } };
	const MSG* pOldMsg = pThis->m_pCurrentMsg;
	pThis->m_pCurrentMsg = &msg;
	// Pass to the message map to process.
	LRESULT lRes;
	BOOL bRet = pThis->ProcessWindowMessage(pThis->m_hWnd, uMsg, wParam,
		lParam, lRes, 0);
	// If window has been destroyed and this is the last message,
	// then delete ourselves.
	if (DEFERDELETE == pThis->m_bAutoDelete && pOldMsg == NULL)
	{
		delete pThis;
		return FALSE;
	}
	// Restore saved value for the current message.
	ATLASSERT(pThis->m_pCurrentMsg == &msg);
	pThis->m_pCurrentMsg = pOldMsg;
	// Set result if message was handled.
	if(bRet)
	{
		switch (uMsg)
		{
		case WM_COMPAREITEM:
		case WM_VKEYTOITEM:
		case WM_CHARTOITEM:
		case WM_INITDIALOG:
		case WM_QUERYDRAGICON:
		case WM_CTLCOLORMSGBOX:
		case WM_CTLCOLOREDIT:
		case WM_CTLCOLORLISTBOX:
		case WM_CTLCOLORBTN:
		case WM_CTLCOLORDLG:
		case WM_CTLCOLORSCROLLBAR:
		case WM_CTLCOLORSTATIC:
			return lRes;
			break;
		}
		::SetWindowLong(pThis->m_hWnd, DWL_MSGRESULT, lRes);
		return TRUE;
	}
	if(uMsg == WM_NCDESTROY)
	{
		// Clear out window handle.
		HWND hWnd = pThis->m_hWnd;
		pThis->m_hWnd = NULL;
		// Clean up after dialog box is destroyed.
		pThis->OnFinalMessage(hWnd);
		// If we want to automatically delete ourselves...
		if (pThis->m_bAutoDelete)
		{
			// If no outstanding messages to process in call stack,
			// m_pCurrentMsg will be NULL so we can delete ourselves.
			if (pThis->m_pCurrentMsg == NULL)
				delete pThis;
			// Else set a flag so we can delete ourselves later.
			else
				pThis->m_bAutoDelete = DEFERDELETE;
		}
	}
	return FALSE;
}

LRESULT CSearchDlg::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	ATLTRACE(_T("CSearchDlg::OnInitDialog()\n"));
	BOOL bRet;

    // Initialize the CDialogResize
    DlgResize_Init(/*bAddGripper*/ true, /*bUseMinTrackSize*/ false);
        
	// center the dialog on the screen
	CenterWindow();

	// Subclass the 'Cancel' button and attach it to the CButtonExCancel object
	bRet = m_wndBtnCancel.SubclassWindow(GetDlgItem(IDCANCEL));
	ATLASSERT(bRet);

	// Subclass the 'Find' button and attach it to the CButtonExFind object
	bRet = m_wndBtnFind.SubclassWindow(GetDlgItem(IDC_FIND));
	ATLASSERT(bRet);

	// Subclass the 'New Note' button and attach it to the CButtonExNew object
	bRet = m_wndBtnNew.SubclassWindow(GetDlgItem(IDC_NEW));
	ATLASSERT(bRet);

	// Subclass the edit control and attach it to the CEditEx object
	bRet = m_wndSearchEdit.SubclassWindow(GetDlgItem(IDC_SEARCH_EDIT));
	ATLASSERT(bRet);

	// Subclass the list control and attach it to the CSearchList object
	bRet = m_wndSearchList.SubclassWindow(GetDlgItem(IDC_SEARCH_LIST));
	ATLASSERT(bRet);
	// Pass the pointer to the hidden window to the list control
	m_wndSearchList.SetPointerToHiddenWindow(m_pWndParent);
	
	// Subclass the 'Find Note' static control and attach it to the CLabel object
    bRet = m_wndLblFind.SubclassWindow(GetDlgItem(IDC_STATIC_FIND));
	ATLASSERT(bRet);
	m_wndLblFind.SetFont3D(TRUE,CLabel::Raised)
			.SetText3DHiliteColor(RGB(0, 0, 255))
			.SetFontName("Times New Roman")
			.SetFontSize(16)
			.SetFontBold(TRUE);
						
	// Subclass the 'Look for' static control and attach it to the CLabel object
    bRet = m_wndLblLookFor.SubclassWindow(GetDlgItem(IDC_STATIC_LOOK));
	ATLASSERT(bRet);
	m_wndLblLookFor.SetFontSize(10);
	m_wndLblLookFor.SetFontBold(TRUE);

	// Register object for message filtering and idle updates
	CMessageLoop* pLoop = _Module.GetMessageLoop();
	ATLASSERT(pLoop != NULL);
	pLoop->AddMessageFilter(this);
	pLoop->AddIdleHandler(this);

	return TRUE;
}

LRESULT CSearchDlg::OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	ATLTRACE(_T("CSearchDlg::OnClose()\n"));

	CloseDialog(0);
	return 0;
}

void CSearchDlg::CloseDialog(int nVal)
{
	ATLTRACE(_T("CSearchDlg::CloseDialog()\n"));

	// Destroy the search dialog
	DestroyWindow();
}

// Searches for saved note/notes based on a search criteria specified in the search edit control  
LRESULT CSearchDlg::OnFind(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	ATLTRACE(_T("CSearchDlg::OnFind()\n"));
	
	// Vector to hold the search matches
	vector<CNote> vecResult;

	// Delete all items from the list control, if any
	if (m_wndSearchList.GetItemCount() != 0)
		m_wndSearchList.DeleteAllItems();
	ATLASSERT(m_wndSearchList.GetItemCount() == 0);

	// Retrieve the string to search for
	// (As of now we can only search the notes by text)

	// Obtain the length of the text within the edit control
	// It's OK if the window has no text, in this case search will
	// return all notes
	int nLen = m_wndSearchEdit.GetWindowTextLength();

	// Create the buffer that will receive the text 
	TCHAR * pszToLookFor = new TCHAR[(nLen + 1) * sizeof(TCHAR)];
	if (!pszToLookFor)
		ATLTRACE(_T("Not enough memory to allocate for the buffer\n"));

	pszToLookFor[nLen * sizeof(TCHAR)] = '\0';

	// Copy the text of the edit control into the buffer
	nLen = m_wndSearchEdit.GetWindowText(pszToLookFor, nLen + 1);
	if (nLen == FALSE)
		ATLTRACE(_T("GetWindowText() failed\n"));
  
	// Create the function object
	CFindNotesByString findNotes(pszToLookFor, &vecResult);

	// Iterate over the contents of the vector.
	// Instance of CFindNotesByString class is passed to the 'for_each()' algorithm as its
	// third argument and its operator() is called for each element in the vector.
	// Each element's m_strNoteText value is searched for the specified string.
	for_each(m_pWndParent->m_vecNotes.begin(), m_pWndParent->m_vecNotes.end(), findNotes);

	// Display search results in the list control
	// only if there are matches
	int nIndex;						// zero-based index to the string in the list control
	if (vecResult.size() != 0)		
	{
		vector<CNote>::iterator iter;

		for (iter = vecResult.begin(); iter != vecResult.end(); iter++)
		{
			replace((*iter).m_strNoteText.begin(), (*iter).m_strNoteText.end(), '\r', ' ');
			replace((*iter).m_strNoteText.begin(), (*iter).m_strNoteText.end(), '\n', ' ');

			// Add note's text to the list control
			nIndex = m_wndSearchList.InsertItem(0, (*iter).m_strNoteText.c_str());
			if (nIndex == -1)
				ATLTRACE(_T("Adding the string to the list control failed\n"));

			// Associate the note's id with this item in the list control
			nIndex = m_wndSearchList.SetItemData(nIndex, (*iter).m_nID);
			if (nIndex == 0)
				ATLTRACE(_T("Setting the 32-bit value in the list control failed\n"));
		}
	}
	else
	{
		nIndex = m_wndSearchList.InsertItem(0, _T("No matches were found"));
		if (nIndex == -1)
			ATLTRACE(_T("Adding the string to the list control failed\n"));
	}

	delete[] pszToLookFor;
	return 0;
}

LRESULT CSearchDlg::OnNewNote(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	ATLTRACE(_T("CSearchDlg::OnNewNote()\n"));

	::SendMessage(m_pWndParent->m_hWnd, WM_COMMAND, (WPARAM)ID_POPUP_NEWNOTE, 0);
	return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一级片在线播放| 成人免费三级在线| 精品福利av导航| 成人综合婷婷国产精品久久蜜臀| 欧美成人精品3d动漫h| 国产1区2区3区精品美女| 亚洲免费观看高清在线观看| 欧美老肥妇做.爰bbww| 国产精品一二二区| 亚洲一区二区黄色| 久久久不卡影院| 欧美视频中文字幕| 国产麻豆精品久久一二三| 欧美国产日韩a欧美在线观看| 欧美在线播放高清精品| 国产在线精品一区二区| 亚洲精品国产高清久久伦理二区| 欧美乱妇15p| 成人爱爱电影网址| 日本成人中文字幕| 亚洲欧美日本韩国| 欧美精品一区二区三区蜜臀| 色吊一区二区三区| 国产成a人亚洲| 蜜桃一区二区三区在线观看| 中文字幕中文字幕一区| 日韩欧美在线网站| 色素色在线综合| 国产成人综合网| 蜜臀久久久99精品久久久久久| 亚洲女人的天堂| 国产农村妇女毛片精品久久麻豆| 欧美理论片在线| 91在线观看污| 国产成人av电影在线播放| 青青草视频一区| 亚洲图片欧美综合| 亚洲欧美色一区| 亚洲欧美在线视频观看| 久久久久久免费网| 欧美三级电影精品| 91久久香蕉国产日韩欧美9色| 国产成人在线网站| 国产一区二区在线看| 亚洲国产视频一区| 亚洲精品菠萝久久久久久久| 欧美高清一级片在线观看| 精品国产区一区| 欧洲激情一区二区| 欧美影院一区二区三区| 色婷婷精品大视频在线蜜桃视频| 成人精品高清在线| 国产一区二区剧情av在线| 精品亚洲成av人在线观看| 丝袜亚洲精品中文字幕一区| 亚洲电影激情视频网站| 亚洲一区二区高清| 亚洲h动漫在线| 日韩有码一区二区三区| 偷拍亚洲欧洲综合| 丝袜美腿亚洲色图| 日本不卡的三区四区五区| 日本美女一区二区三区视频| 午夜视黄欧洲亚洲| 视频一区视频二区在线观看| 午夜精品成人在线| 偷拍亚洲欧洲综合| 秋霞午夜av一区二区三区| 视频一区免费在线观看| 日韩国产精品久久久| 一区二区三区欧美| 亚洲成人精品影院| 日本伊人精品一区二区三区观看方式| 首页欧美精品中文字幕| 亚洲高清免费观看| 蜜臀国产一区二区三区在线播放| 看片的网站亚洲| 国产成人免费视频网站| 成人精品在线视频观看| av电影在线不卡| 欧美性受xxxx黑人xyx性爽| 风流少妇一区二区| 日韩一区二区三区免费看 | 精品少妇一区二区三区在线播放| 欧美一区二区在线不卡| 26uuu精品一区二区| 国产精品家庭影院| 五月婷婷欧美视频| 国产一区二区三区免费观看| 国产成人免费在线观看| 91精品91久久久中77777| 日韩免费观看高清完整版| 中文字幕一区二区三区在线不卡 | 亚洲欧洲国产专区| 奇米在线7777在线精品| aaa欧美大片| 欧美一区二区性放荡片| 亚洲图片激情小说| 极品瑜伽女神91| 欧美日韩精品是欧美日韩精品| 欧美va亚洲va国产综合| 一区二区高清视频在线观看| 国产精品夜夜爽| 欧美一区二视频| 亚洲精品videosex极品| 国产福利一区二区三区视频在线| 欧美色图免费看| 亚洲欧美日韩精品久久久久| 国产精品1区二区.| 日韩手机在线导航| 亚洲一二三四在线| aaa亚洲精品| 日本一区二区三区免费乱视频| 日韩精品国产精品| 欧美视频中文字幕| 一区二区三区在线免费观看| 国产aⅴ精品一区二区三区色成熟| 91精品欧美一区二区三区综合在| 亚洲男同性恋视频| 成人av网站在线观看| 精品国产91亚洲一区二区三区婷婷| 午夜精品福利一区二区三区av| 91免费观看视频在线| 国产精品的网站| 成人av中文字幕| 国产精品欧美综合在线| 国产福利91精品| 精品成人一区二区三区四区| 日本不卡一区二区三区| 欧美精品一二三| 午夜精品免费在线| 欧美日韩亚洲丝袜制服| 一区二区久久久久| 欧美日韩综合一区| 亚洲韩国精品一区| 欧美色爱综合网| 日韩国产欧美三级| 欧美一区午夜精品| 久久国产婷婷国产香蕉| 日韩一区二区在线看| 麻豆国产精品777777在线| 日韩一区二区高清| 精品一区二区精品| 久久精品人人爽人人爽| 国产福利一区在线观看| 国产精品色婷婷| 一本一道久久a久久精品| 亚洲精品国产成人久久av盗摄| 日本精品一区二区三区高清| 亚洲自拍偷拍欧美| 91精品久久久久久久91蜜桃| 理论片日本一区| 久久久蜜桃精品| 成人免费高清在线观看| 亚洲日本va在线观看| 欧美色精品在线视频| 免费精品视频在线| 日本一区二区三区国色天香| 99国产精品久| 日韩专区中文字幕一区二区| 日韩免费一区二区三区在线播放| 国产一区二区三区日韩 | 欧美大度的电影原声| 国模冰冰炮一区二区| 国产精品久久久久久亚洲伦| 色悠悠久久综合| 久久精工是国产品牌吗| 国产女人aaa级久久久级| 91福利社在线观看| 美美哒免费高清在线观看视频一区二区| 欧美成va人片在线观看| 成人动漫一区二区三区| 亚洲大片精品永久免费| 精品人伦一区二区色婷婷| 成人国产精品免费网站| 一区二区三区在线免费播放| 日韩一区二区三区视频在线| 从欧美一区二区三区| 午夜精品影院在线观看| 国产亚洲精品资源在线26u| 色综合久久88色综合天天 | 天天综合网 天天综合色| www久久久久| 欧美性受极品xxxx喷水| 国产精品一色哟哟哟| 亚洲福利电影网| 国产精品久久久久久户外露出| 欧美日韩国产精品自在自线| 国产成人精品www牛牛影视| 亚洲午夜久久久久久久久电影院| 精品国产免费一区二区三区四区| 99re视频这里只有精品| 美女视频一区在线观看| 尤物在线观看一区| 久久久久久一二三区| 欧美日韩国产一级二级| av网站免费线看精品| 麻豆精品久久久| 亚洲va欧美va天堂v国产综合| 中文字幕不卡在线播放|