VC转为DELPHI,最多一星期结贴,谢谢了!(100)

  • 主题发起人 主题发起人 www.0o0.com
  • 开始时间 开始时间
W

www.0o0.com

Unregistered / Unconfirmed
GUEST, unregistred user!
兄弟们,帮我把以下vc翻译成 delphi。谢谢了~void CGetNumberDlg::OnChangeEditHide() { UpdateData() ; if(!m_strHide.IsEmpty()) { CPoint pt ; GetCursorPos(&pt) ; DWORD dwMousePos = 0 ; char szGetString[1024]={0}; char szGetWord[1024]={0}; if(GetMouseWord(m_hWnd,szGetString,szGetWord,dwMousePos)) { char szNumString[20]={0}; if (GetNumString(szGetString,dwMousePos,szNumString)) { for (int n=0;n<19;n++) szNumString[n]=szNumString[n+1]; } m_strGetWord = szNumString;//szGetWord ; UpdateData(false) ; SetWindowLong(m_hWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW ); ShowFloatWindow() ; GetCursorPos(&pt) ; m_GetPoint = pt ; SetTimer(10,800,NULL) ; CWnd* pTxt = GetDlgItem(IDC_EDIT_GETNUM); HDC hdc = ::GetDC( pTxt->m_hWnd ); SIZE ts; ::GetTextExtentPoint( hdc, szNumString, strlen(szNumString), &ts ); ::ReleaseDC( pTxt->m_hWnd, hdc ); ::SetWindowPos(m_hWnd, HWND_TOPMOST, pt.x - 1/*+5*/ , pt.y+10/*+15*/, 55 + ts.cx + 225, 25+ts.cy+225, SWP_SHOWWINDOW |SWP_NOACTIVATE ) ; } } } m_strHide.Empty(); UpdateData(false) ; }
 
直接发这么一段,估计没什么人有空有兴趣帮你做苦力的。你就直接说哪个点不会,其实上面的代码转换是很简单的。
 
LZ结贴吧
 
我似懂非懂的弄了下,大家帮我看下 不甚感谢!var pt: TPoint; DwmousePos: DWORD; szGetstring, szGetWord: array[0..1023] of Char; szNumString: array[0..1023] of Char; n: Integer;begin Result := False; GetCursorPos(pt); dwMousePos := 0; if(GetMouseWord(Self.Handle,szGetstring,szGetWord,dwMousePos)) then begin if (GetNumString(szGetString,dwMousePos,szNumString)) then if ( ((szNumString[0]='0') and (szNumString[1] = '1') and (szNumString[2] = '3')) or ((szNumString[0] = '0') and (szNumString[1] = '1') and (szNumString[2] = '5'))) then begin for n := 0 to 19 do szNumString[n] := szNumString[n+1]; end; m_strGetWord := szNumString;//szGetWord ; // m_pFloatWin->ShowWindow(SW_SHOW) ; //UpdateData(false) ; SetWindowLong(Self.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW ); // m_pFloatWin->BringWindowToTop() ; ShowFloatWindow(); GetCursorPos(pt); m_GetPoint := pt; //SetTimer(10,800,NULL); //CWnd* pTxt = GetDlgItem(IDC_EDIT_GETNUM); //这里怎么翻译 //HDC hdc = ::GetDC( pTxt->m_hWnd ); //这里怎么翻译 //SIZE ts; //::GetTextExtentPoint( hdc, szNumString, strlen(szNumString), &ts ); //这里怎么翻译 //::ReleaseDC( pTxt->m_hWnd, hdc ); //这里怎么翻译 SetWindowPos(Self.Handle, HWND_TOPMOST, pt.x, pt.y, 225, 225, SWP_SHOWWINDOW or SWP_NOACTIVATE ) ; Result := True; end;帮我看下 谢谢了!
 
GetDlgItem与GetDC、GetTextExtentPoint、ReleaseDC 都是 Win API,Delphi里直接调用就是了,注意参数及返回值,不清楚就直接百度或查帮助。
 
//CWnd* pTxt = GetDlgItem(IDC_EDIT_GETNUM); //这里怎么翻译 //HDC hdc = ::GetDC( pTxt->m_hWnd ); //这里怎么翻译 //SIZE ts; //::GetTextExtentPoint( hdc, szNumString, strlen(szNumString), &ts ); //这里怎么翻译 //::ReleaseDC( pTxt->m_hWnd, hdc ); //这里怎么翻译IDC_EDIT_GETNUM就是EDIT控件的ID号这个是VC在一个窗口上输出字符串 szNumString你在DELPHI 中输出字符串比VC简单eidt1.txt := szNumString;
 
多人接受答案了。
 
后退
顶部