2012-07-09 34 views
0

我想從我在運行時創建的編輯控件中獲取文本,並將文本從它打印到父窗口(不是標題欄)上,我也在運行時創建。我該怎麼做呢?如何設置文本從編輯控件到窗口

  const int bufferSize = 1024; 
      char textBuffer[bufferSize] = ""; 

      HWND Editbox = FindWindowEx(hWnd, NULL, "Edit", NULL); 
      SendMessage(Editbox, WM_GETTEXT, 
       (WPARAM)bufferSize, (LPARAM)textBuffer); 
      HWND Picbox = FindWindowEx(hWnd, NULL, "Picbox", NULL); 

      RECT Picbox_Rect; 
      GetClientRect(Picbox,&Picbox_Rect); 
      Picbox_Rect.top = 3; 
      Picbox_Rect.left = 3; 
      hdc = GetDC (Picbox) ; 
      HFONT fnt = CreateFont(14,0,0,0,FW_DONTCARE, 
       FALSE,FALSE,FALSE,DEFAULT_CHARSET, 
       OUT_OUTLINE_PRECIS,CLIP_DEFAULT_PRECIS, 
       0, VARIABLE_PITCH,TEXT("Verdana")); 
      SelectObject(hdc, fnt); 
      SetTextColor(hdc,RGB(0,0,255)); 
      SetBkMode(hdc, TRANSPARENT); 
      DrawText(hdc, textBuffer, strlen (textBuffer), 
       &Picbox_Rect, DT_LEFT); 
      ReleaseDC (Picbox, hdc) ; 
      DeleteObject(fnt); 
       //InvalidateRect(Picbox, NULL, TRUE); 
+2

你使用MFC?QT嗎? – Jeeva 2012-07-09 05:52:52

+2

Windows? OSX? Linux呢? – 2012-07-09 05:53:08

+0

windows和no mfc – eric 2012-07-09 05:56:36

回答

1

如果您直接進入Windows API,只需使用GetWindowText()即可從文本框中獲取文本,然後使用SetWindowText()將文本寫入其他窗口或控件。

+1

我認爲他不想寫在標題欄 – Jeeva 2012-07-09 06:06:23

+0

我使用的是Windows API,我可以用GetWindowText獲取文本並使用SetWindowText()將它打印到靜態控件上,但我似乎無法讓它打印出來到主要或次要(子)窗口。我沒有使用TextOut或DrawText打印。 – eric 2012-07-09 06:43:46

+0

@eric,你是如何使用它們的?你有沒有通過'GetDC'獲得的正確'HDC'(以後記得使用'ReleaseDC')? – chris 2012-07-09 07:32:12

相關問題