reactos操作系统实现(179)

SetWindowText函数是实现设置窗口标题上显示的字符串。这个函数在内核里这样实现,代码如下:

#001  BOOL WINAPI

#002  SetWindowTextW(HWND hWnd,

#003                 LPCWSTR lpString)

#004  {

#005      DWORD ProcessId;

 

获取这个窗口相关的进程标识号。

#006      if(!GetWindowThreadProcessId(hWnd, &ProcessId))

#007      {

#008          return FALSE;

#009      }

#010 

 

如果不是本进程,就需要使用下面的代码发送给其它进程。

#011      if(ProcessId != GetCurrentProcessId())

#012      {

#013          /* do not send WM_GETTEXT messages to other processes */

#014 

 

设置窗口的字符串。

#015          DefSetText(hWnd, lpString, FALSE);

#016 

 

准备窗口更新并显示字符串。

#017          if ((GetWindowLongW(hWnd, GWL_STYLE) & WS_CAPTION) == WS_CAPTION)

#018          {

#019              DefWndNCPaint(hWnd, (HRGN)1, -1);

#020          }

#021          return TRUE;

#022      }

#023 

 

通过发送消息WM_SETTEXT来设置字符串到窗口标题里显示。

#024      return SendMessageW(hWnd, WM_SETTEXT, 0, (LPARAM)lpString);

#025  }

你可能感兴趣的:(reactos操作系统实现(179))