{{notification.text}}

MirGames

Максим
31.08.07 03:02
0
Вот не хитрое приложение, но что то я в нем запутался :)
Как я понял дело не доходит даже до инициализации, которое вызывается во время события WM_CREATE

Выручайте :blush:
src.rar
bin.rar
#1
аксакал
31.08.07 04:25
0
WndProc не возвращает результата и не передаёт обработку WM_CREATE в DefWindowProc.
#2
Максим
01.09.07 01:08
0
Переделал WinProc вот так

Код


  function MaxWindow.WndProc(hWnd: HWND; Msg: UINT;  wParam: WPARAM;  lParam: LPARAM):LRESULT; stdcall;
  begin
  MessageBox(0, 'WM CREATE', 'OK', MB_OK or MB_ICONERROR);
    case (Msg) of
    WM_CREATE:
      begin
      ShowCursor(False);

      Main.Init(hWnd);
      Param.SetLight(GL_LIGHT0);
      Param.SetDepth(TRUE);
      end;
    WM_CLOSE:
      begin
        Main.Free;
        PostQuitMessage(0);
      end;
    WM_KEYDOWN:      
      begin
        keys[wParam] := True;
      end;
    WM_KEYUP:
      begin
        keys[wParam] := False;
      end;
    WM_SIZE:
      begin
      Main.Resize(0,0,Application.MainForm.ClientWidth,Application.MainForm.ClientHeight);
      end;
    WM_PAINT:
      begin
      DRAW_PROC;
      end;
    end;
  Result := DefWindowProc(hWnd, Msg, wParam, lParam);
  end;


Результат тот же. Или я что то не так сделал?
Отредактировано: 01.09.07 01:09
#3
01.09.07 01:12
0
Максим
Во первых, для каждого обрабатываемого сообщения нужно выставлять правильный Result самому (какой правильный - написано в Win32 API Help). Во вторых, Result := DefWindowProc(hWnd, Msg, wParam, lParam); следует поместить в ветку else кейса.
#4
Максим
01.09.07 02:39
0
Спасиб, буду разбираться =)
#{{post.Index}}
{{post.Author.Login}}
{{post.CreatedDate | date:'dd.MM.yy HH:mm'}}
{{post.VotesRating}}
Отредактировано: {{post.UpdatedDate | date:'dd.MM.yy HH:mm'}}