您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GetWindowTextLength函数代码示例

51自学网 2021-06-01 21:18:07
  C++
这篇教程C++ GetWindowTextLength函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中GetWindowTextLength函数的典型用法代码示例。如果您正苦于以下问题:C++ GetWindowTextLength函数的具体用法?C++ GetWindowTextLength怎么用?C++ GetWindowTextLength使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了GetWindowTextLength函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: CEditWnd

	void CEditUI::DoEvent(TEventUI& event)	{		if( !IsMouseEnabled() && event.Type > UIEVENT__MOUSEBEGIN && event.Type < UIEVENT__MOUSEEND ) {			if( m_pParent != NULL ) m_pParent->DoEvent(event);			else CLabelUI::DoEvent(event);			return;		}		if( event.Type == UIEVENT_SETCURSOR && IsEnabled() )		{			::SetCursor(::LoadCursor(NULL, IDC_IBEAM));			return;		}		if( event.Type == UIEVENT_WINDOWSIZE )		{			if( m_pWindow != NULL ) m_pManager->SetFocusNeeded(this);		}		if( event.Type == UIEVENT_SCROLLWHEEL )		{			if( m_pWindow != NULL ) return;		}		if( event.Type == UIEVENT_SETFOCUS && IsEnabled() ) 		{			if( m_pWindow ) return;			m_pWindow = new CEditWnd();			ASSERT(m_pWindow);			m_pWindow->Init(this);			Invalidate();		}		if( event.Type == UIEVENT_KILLFOCUS && IsEnabled() ) 		{			Invalidate();		}		if( event.Type == UIEVENT_BUTTONDOWN || event.Type == UIEVENT_DBLCLICK || event.Type == UIEVENT_RBUTTONDOWN) 		{			if( IsEnabled() ) {				GetManager()->ReleaseCapture();				if( IsFocused() && m_pWindow == NULL )				{					m_pWindow = new CEditWnd();					ASSERT(m_pWindow);					m_pWindow->Init(this);					if( PtInRect(&m_rcItem, event.ptMouse) )					{						int nSize = GetWindowTextLength(*m_pWindow);						if( nSize == 0 )							nSize = 1;						Edit_SetSel(*m_pWindow, 0, nSize);					}				}				else if( m_pWindow != NULL )				{#if 1					int nSize = GetWindowTextLength(*m_pWindow);					if( nSize == 0 )						nSize = 1;					Edit_SetSel(*m_pWindow, 0, nSize);#else					POINT pt = event.ptMouse;					pt.x -= m_rcItem.left + m_rcTextPadding.left;					pt.y -= m_rcItem.top + m_rcTextPadding.top;					::SendMessage(*m_pWindow, WM_LBUTTONDOWN, event.wParam, MAKELPARAM(pt.x, pt.y));#endif				}			}			return;		}		if( event.Type == UIEVENT_MOUSEMOVE ) 		{			return;		}		if( event.Type == UIEVENT_BUTTONUP ) 		{			return;		}		if( event.Type == UIEVENT_CONTEXTMENU )		{			return;		}		if( event.Type == UIEVENT_MOUSEENTER )		{			if( IsEnabled() ) {				m_uButtonState |= UISTATE_HOT;				Invalidate();			}			return;		}		if( event.Type == UIEVENT_MOUSELEAVE )		{			if( IsEnabled() ) {				m_uButtonState &= ~UISTATE_HOT;				Invalidate();			}			return;		}		CLabelUI::DoEvent(event);	}
开发者ID:839687571,项目名称:nsduilib,代码行数:100,


示例2: LinkList_Main

static INT_PTR LinkList_Main(WPARAM wParam, LPARAM){	HANDLE hContact = (HANDLE)wParam;	HWND hWnd = WindowList_Find(hWindowList, hContact);	if ( hWnd != NULL ) {		int len;		SetForegroundWindow(hWnd);		SetFocus(hWnd);		len = GetWindowTextLength(GetDlgItem(hWnd, IDC_MAIN));		PostMessage(GetDlgItem(hWnd, IDC_MAIN), EM_SETSEL, (WPARAM)len, (LPARAM)len);		return 0;	}			HANDLE hEvent = db_event_first(hContact);	if (hEvent == NULL) {		MessageBox(NULL, TXT_EMPTYHISTORY, TXT_PLUGINNAME, MB_OK | MB_ICONINFORMATION );		return 0;	}	int histCount = db_event_count(hContact), actCount = 0;	DBEVENTINFO dbe = { sizeof(dbe) };	dbe.cbBlob = db_event_getBlobSize(hEvent);	dbe.pBlob  = (PBYTE)malloc(dbe.cbBlob+1);	db_event_get(hEvent, &dbe);	dbe.pBlob[dbe.cbBlob] = 0;	RECT DesktopRect;	GetWindowRect(GetDesktopWindow(), &DesktopRect);	HWND hWndProgress = CreateWindow(_T("Progressbar"), TranslateT("Processing history..."), WS_OVERLAPPED, CW_USEDEFAULT, CW_USEDEFAULT, 350, 45, NULL, NULL, hInst, NULL);	if ( hWndProgress == 0 ) {		free(dbe.pBlob);		MessageBox(NULL, TranslateT("Could not create window!"), TranslateT("Error"), MB_OK | MB_ICONEXCLAMATION );		return -1;	}	SetWindowPos(hWndProgress, HWND_TOP, (int)(DesktopRect.right*0.5)-175, (int)(DesktopRect.bottom*0.5)-22, 0, 0, SWP_NOSIZE);	ShowWindow(hWndProgress, SW_SHOW);	SetForegroundWindow(hWndProgress);	LISTELEMENT *listStart = (LISTELEMENT*)malloc(sizeof(LISTELEMENT));	ZeroMemory(listStart, sizeof(LISTELEMENT));	while( 1 ) {		if ( dbe.eventType == EVENTTYPE_URL || dbe.eventType == EVENTTYPE_MESSAGE ) {			// Call function to find URIs			if ( ExtractURI(&dbe, hEvent, listStart) < 0 ) {				free(dbe.pBlob);				RemoveList(listStart);				MessageBox(NULL, TranslateT("Could not allocate memory!"), TranslateT("Error"), MB_OK | MB_ICONEXCLAMATION);				return -1;			}		}		actCount++;		if ( ((int)(((float)actCount/histCount)*100.00)) % 10 == 0 )			SendMessage(hWndProgress, WM_COMMAND, 100, ((int)(((float)actCount/histCount)*100.00)));				hEvent = db_event_next(hEvent);		if ( hEvent == NULL )			break;		free(dbe.pBlob);		dbe.cbBlob = db_event_getBlobSize(hEvent);		dbe.pBlob = (PBYTE)malloc(dbe.cbBlob+1);		db_event_get(hEvent, &dbe);		dbe.pBlob[dbe.cbBlob] = 0;	}	free(dbe.pBlob);	SendMessage(hWndProgress, WM_CLOSE, 0, 0);	if ( ListCount(listStart) <= 0 ) {			RemoveList(listStart);		MessageBox(NULL, TXT_NOLINKINHISTORY, TXT_PLUGINNAME, MB_OK | MB_ICONINFORMATION);		return 0;	}	DIALOGPARAM *DlgParam = (DIALOGPARAM*)malloc(sizeof(DIALOGPARAM));	DlgParam->hContact    = hContact;	DlgParam->listStart   = listStart;	DlgParam->findMessage = 0;	DlgParam->chrg.cpMax  = -1;	DlgParam->chrg.cpMin  = -1;	HWND hWndMain = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_MAIN_DLG), NULL, MainDlgProc, (LPARAM)DlgParam);	if (hWndMain == 0) {		RemoveList(listStart);		MessageBox(NULL, TranslateT("Could not create window!"), TranslateT("Error"), MB_OK | MB_ICONEXCLAMATION );		return -1;	}	ShowWindow(hWndMain, SW_SHOW);		return 0;}
开发者ID:MrtsComputers,项目名称:miranda-ng,代码行数:91,


示例3: GetWindowTextLength

int CxEdit::GotoEnd(BOOL bScroll /*= TRUE*/){   const int length = GetWindowTextLength();   SetSel(length, length, !bScroll); // end of edit text   return LineFromChar(length);}
开发者ID:burzumishi,项目名称:arnold,代码行数:6,


示例4: SelectContainerDlgProc

INT_PTR CALLBACK SelectContainerDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam){    HWND hwndMsgDlg = 0;    hwndMsgDlg = (HWND) GetWindowLongPtr(hwndDlg, GWLP_USERDATA);    switch (msg) {    case WM_INITDIALOG: {        TCHAR szNewTitle[128];        RECT rc, rcParent;        struct TContainerData *pContainer = 0;        SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR) lParam);        hwndMsgDlg = (HWND) lParam;        TranslateDialogDefault(hwndDlg);        if (lParam) {            struct TWindowData *dat = (struct TWindowData *)GetWindowLongPtr((HWND)lParam, GWLP_USERDATA);            if (dat) {                mir_sntprintf(szNewTitle, safe_sizeof(szNewTitle), CTranslator::get(CTranslator::CNT_SELECT_FOR), dat->cache->getNick());                SetWindowText(hwndDlg, szNewTitle);            }        }        SendMessage(hwndDlg, DM_SC_BUILDLIST, 0, 0);        SendDlgItemMessage(hwndDlg, IDC_NEWCONTAINERNAME, EM_LIMITTEXT, (WPARAM)CONTAINER_NAMELEN, 0);        SendDlgItemMessage(hwndDlg, IDC_NEWCONTAINER, EM_LIMITTEXT, (WPARAM)CONTAINER_NAMELEN, 0);        GetWindowRect(hwndDlg, &rc);        GetWindowRect(GetParent(hwndDlg), &rcParent);        SetWindowPos(hwndDlg, 0, (rcParent.left + rcParent.right - (rc.right - rc.left)) / 2, (rcParent.top + rcParent.bottom - (rc.bottom - rc.top)) / 2, 0, 0, SWP_NOSIZE | SWP_SHOWWINDOW);        return TRUE;    }    case WM_COMMAND:        switch (LOWORD(wParam)) {        case IDOK: {            TCHAR szName[CONTAINER_NAMELEN];            LRESULT iItem;            if ((iItem = SendDlgItemMessage(hwndDlg, IDC_CNTLIST, LB_GETCURSEL, 0, 0)) != LB_ERR) {                SendDlgItemMessage(hwndDlg, IDC_CNTLIST, LB_GETTEXT, (WPARAM) iItem, (LPARAM) szName);                if (IsWindow(hwndMsgDlg))                    SendMessage(hwndMsgDlg, DM_CONTAINERSELECTED, 0, (LPARAM) szName);            }            if (IsWindow(hwndDlg))                DestroyWindow(hwndDlg);            break;        }        case IDCANCEL:            DestroyWindow(hwndDlg);            break;        case IDC_DELETECONTAINER: {            TCHAR szName[CONTAINER_NAMELEN + 1];            LRESULT iItem;            if ((iItem = SendDlgItemMessage(hwndDlg, IDC_CNTLIST, LB_GETCURSEL, 0, 0)) != LB_ERR) {                SendDlgItemMessage(hwndDlg, IDC_CNTLIST, LB_GETTEXT, (WPARAM) iItem, (LPARAM) szName);                if (!_tcsncmp(szName, _T("default"), CONTAINER_NAMELEN) || !_tcsncmp(szName, CTranslator::get(CTranslator::GEN_DEFAULT_CONTAINER_NAME), CONTAINER_NAMELEN))                    MessageBox(hwndDlg, CTranslator::get(CTranslator::CNT_SELECT_DELETEERROR), _T("Error"), MB_OK | MB_ICONERROR);                else {                    int iIndex = SendDlgItemMessage(hwndDlg, IDC_CNTLIST, LB_GETITEMDATA, (WPARAM)iItem, 0);                    DeleteContainer(iIndex);                    SendDlgItemMessage(hwndDlg, IDC_CNTLIST, LB_RESETCONTENT, 0, 0);                    SendMessage(hwndDlg, DM_SC_BUILDLIST, 0, 0);                    BuildContainerMenu();                }            }            break;        }        case IDC_RENAMECONTAINER: {            TCHAR szNewName[CONTAINER_NAMELEN], szName[CONTAINER_NAMELEN + 1];            int iLen, iItem;            struct TContainerData *pCurrent = pFirstContainer;            iLen = GetWindowTextLength(GetDlgItem(hwndDlg, IDC_NEWCONTAINERNAME));            if (iLen) {                GetWindowText(GetDlgItem(hwndDlg, IDC_NEWCONTAINERNAME), szNewName, CONTAINER_NAMELEN);                if(!_tcsncmp(szNewName, CGlobals::m_default_container_name, CONTAINER_NAMELEN) || !_tcsncmp(szNewName, CTranslator::get(CTranslator::GEN_DEFAULT_CONTAINER_NAME), CONTAINER_NAMELEN)) {                    MessageBox(hwndDlg, CTranslator::get(CTranslator::CNT_SELECT_RENAMEERROR), _T("Error"), MB_OK | MB_ICONERROR);                    break;                }                iItem = SendDlgItemMessage(hwndDlg, IDC_CNTLIST, LB_FINDSTRING, (WPARAM) - 1, (LPARAM) szNewName);                if (iItem != LB_ERR) {                    TCHAR szOldName[CONTAINER_NAMELEN + 1];                    SendDlgItemMessage(hwndDlg, IDC_CNTLIST, LB_GETTEXT, (WPARAM) iItem, (LPARAM) szOldName);                    if (lstrlen(szOldName) == lstrlen(szNewName)) {                        MessageBox(0, CTranslator::get(CTranslator::CNT_SELECT_INUSE), _T("Error"), MB_OK | MB_ICONERROR);                        SetFocus(GetDlgItem(hwndDlg, IDC_NEWCONTAINERNAME));                        break;                    }                }                if ((iItem = SendDlgItemMessage(hwndDlg, IDC_CNTLIST, LB_GETCURSEL, 0, 0)) != LB_ERR) {                    SendDlgItemMessage(hwndDlg, IDC_CNTLIST, LB_GETTEXT, (WPARAM) iItem, (LPARAM) szName);                    if (!_tcsncmp(szName, _T("default"), CONTAINER_NAMELEN) || !_tcsncmp(szName, CTranslator::get(CTranslator::GEN_DEFAULT_CONTAINER_NAME), CONTAINER_NAMELEN))                        MessageBox(hwndDlg, CTranslator::get(CTranslator::CNT_SELECT_RENAMEERROR), _T("Error"), MB_OK | MB_ICONERROR);                    else {                        int iIndex = SendDlgItemMessage(hwndDlg, IDC_CNTLIST, LB_GETITEMDATA, (WPARAM)iItem, 0);//.........这里部分代码省略.........
开发者ID:dineshkummarc,项目名称:miranda-im-v0.9.47-src,代码行数:101,


示例5: _tcslen

//////////////////////////////////////////////////////////////////////////////// This function is based on Daniel Lohmann's article "CEditLog - fast logging// into an edit control with cout" at http://www.codeproject.comvoid CLogEditCtrl::AddLine(LPCTSTR pszMsg, int iLen){	int iMsgLen = (iLen == -1) ? _tcslen(pszMsg) : iLen;	if (iMsgLen == 0)		return;#ifdef _DEBUG	if (pszMsg[iMsgLen - 1] == _T('/n'))		ASSERT( iMsgLen >= 2 && pszMsg[iMsgLen - 2] == _T('/r') );#endif	// Get Edit contents dimensions and cursor position	int iStartChar, iEndChar;	GetSel(iStartChar, iEndChar);	int iWndTxtLen = GetWindowTextLength();	if (iStartChar == iWndTxtLen && iWndTxtLen == iEndChar)	{		// The cursor resides at the end of text		SCROLLINFO si;		si.cbSize = sizeof si;		si.fMask = SIF_ALL;		if (m_bAutoScroll && GetScrollInfo(SB_VERT, &si) && si.nPos >= (int)(si.nMax - si.nPage + 1))		{			// Not scrolled away			SafeAddLine(iWndTxtLen, iMsgLen, pszMsg, iStartChar, iEndChar);			if (m_bAutoScroll && !IsWindowVisible())				ScrollToLastLine();		}		else		{			// Reduce flicker by ignoring WM_PAINT			m_bNoPaint = true;			BOOL bIsVisible = IsWindowVisible();			if (bIsVisible)				SetRedraw(FALSE);			// Remember where we are			int nFirstLine = !m_bAutoScroll ? GetFirstVisibleLine() : 0;					// Select at the end of text and replace the selection			// This is a very fast way to add text to an edit control			SafeAddLine(iWndTxtLen, iMsgLen, pszMsg, iStartChar, iEndChar);			SetSel(iStartChar, iEndChar, TRUE); // Restore our previous selection			if (!m_bAutoScroll)				LineScroll(nFirstLine - GetFirstVisibleLine());			else				ScrollToLastLine();			m_bNoPaint = false;			if (bIsVisible){				SetRedraw();				if (m_bRichEdit)					Invalidate();			}		}	}	else	{		// We should add the text anyway...		// Reduce flicker by ignoring WM_PAINT		m_bNoPaint = true;		BOOL bIsVisible = IsWindowVisible();		if (bIsVisible)			SetRedraw(FALSE);		// Remember where we are		int nFirstLine = !m_bAutoScroll ? GetFirstVisibleLine() : 0;			if (iStartChar != iEndChar)		{			// If we are currently selecting some text, we have to find out			// if the caret is near the beginning of this block or near the end.			// Note that this does not always work. Because of the EM_CHARFROMPOS			// message returning only 16 bits this will fail if the user has selected 			// a block with a length dividable by 64k.			// NOTE: This may cause a lot of terrible CRASHES within the RichEdit control when used for a RichEdit control!?			// To reproduce the crash: click in the RE control while it's drawing a line an start a selection!			if (!m_bRichEdit){			    CPoint pt;			    ::GetCaretPos(&pt);			    int nCaretPos = CharFromPos(pt);			    if (abs((iStartChar % 0xffff - nCaretPos)) < abs((iEndChar % 0xffff - nCaretPos)))			    {				    nCaretPos = iStartChar;				    iStartChar = iEndChar;				    iEndChar = nCaretPos;			    }		    }		}		// Note: This will flicker, if someone has a good idea how to prevent this - let me know				// Select at the end of text and replace the selection		// This is a very fast way to add text to an edit control//.........这里部分代码省略.........
开发者ID:e1z0,项目名称:sMule,代码行数:101,


示例6: WindowProc

//.........这里部分代码省略.........		case WM_COMMAND: // Item do menu, tecla de atalho ou controle ativado		{			// Verifica bit menos significativo de wParam (ID’s)			switch(LOWORD(wParam))			{				case IDM_ABRIR:				{					// Se arquivo ainda n
C++ GetWindowTextLengthW函数代码示例
C++ GetWindowTextA函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。