Показать сообщение отдельно
  #3  
Старый 02.04.2015, 19:15
Anton93 Anton93 вне форума
Прохожий
 
Регистрация: 20.02.2015
Сообщения: 27
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
нужно обрабатывать WM_CTLCOLOREDIT:
Код:
function WindowProc(hwnd: HWND; Msg: Integer;
  wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
begin
  case Msg of
    WM_CTLCOLOREDIT: begin
      SetBkColor(wParam, $00);
      SetTextColor(wParam, $ffffff);
      Result:=GetStockObject(BLACK_BRUSH);
    end;
что не то, вот код

Код:
program Project1;

uses
   Windows, Messages;
  {$SETPEFLAGS IMAGE_FILE_RELOCS_STRIPPED}

const
  Memo_1 = 100;

var
  MSG: TMSG;
  WC: TWndClass;
  hWindow, Memo: HWND;

function WndProc(hWnd: HWND; Msg: UINT; WParam: Integer; lParam: Integer): Integer; stdcall;
begin
  Result:=0;
  case msg of
    WM_CTLCOLOREDIT:
      begin
        SetBkColor(wParam, $00);
        SetTextColor(wParam, $ffffff);
        Result:=GetStockObject(BLACK_BRUSH);
      end;
    WM_DESTROY:
      begin
        PostQuitMessage(0);
        Exit;
      end;
  Result := DefWindowProc(hWnd, Msg, WParam, LParam);
end;

procedure CreateWindow;
begin
  FillChar(WC, SizeOf(TWndClassEx), 0);
  WC.lpszClassName := 'Window';
  WC.lpfnWndProc := @WndProc;
  WC.hbrBackground := 1;
  WC.hCursor := LoadCursor(0, IDC_ARROW);
  RegisterClass(WC);
  hWindow := CreateWindowEx(0,
                            WC.lpszClassName,//Имя класса окна
                            nil{Имя окна},
                            WS_VISIBLE or WS_DLGFRAME,//Стиль
                            200,300,400,200,
                            0,
                            0,
                            hInstance,//Описатель приложения, с которым окно связывается
                            nil);
  Memo := CreateWindowEx(WS_EX_CLIENTEDGE,
                         'Edit',
                         nil,
                         WS_CHILD or WS_VISIBLE or WS_VSCROLL or ES_AUTOHSCROLL or ES_MULTILINE or ES_WANTRETURN,
                         10, 10, 300, 100,
                         hWindow,
                         Memo_1,
                         hInstance,
                         nil);
  sendmessage(Memo, EM_REPLACESEL, 0, longword(pchar('Сообщение: '+#13#10)));
  ShowWindow(hWindow, SW_SHOW);//Показать окно
  UpDateWindow(hWindow);//Обновления окна
end;
//============================Конец "Создание формы"============================

begin
  CreateWindow;
  while GetMessage(MSG, 0, 0, 0) do
    begin
      TranslateMessage(MSG);
      DispatchMessage(MSG);
    end;
end.
Ответить с цитированием