Entwickler-Ecke

Windows API - Menu in .Dpr file Projekt?


kompas - So 15.08.10 10:29
Titel: Menu in .Dpr file Projekt?
Hallo.
Hier gebe ich euch mal meine Quelle Kode, wie ich Benutzt habe für mein Hauptfenster zu bearbeiten.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
 program Project1;

uses
  Windows,
  Messages;


{$R *.res}

Function WindowProcedure(hWnd: HWND;
                         uMsg: UINT;
                         wParam: WPARAM;
                         lParam: LPARAM): LRESULT; Stdcall;
Begin
     Case uMsg Of
        WM_DESTROY:  PostQuitMessage(0);
     End;

     Result := DefWindowProc( hWnd, uMsg, wParam, lParam );
End;

Var
     WndClass       :TWndClassEx;
     MainWindow      :THandle;
     Msg            :TMSG ;

Begin
     With WndClass Do
     Begin
          cbSize         := Sizeof( WNDCLASSEX );
          Style          := CS_HREDRAW or CS_VREDRAW or CS_DBLCLKS;
          lpfnWndProc    := @WindowProcedure;
          cbClsExtra     := 0;


          cbWndExtra     := 0;
          hInstance      := hInstance;
          hIcon          := LoadIcon(0, IDI_APPLICATION);
          hCursor        := LoadCursor( 0, IDC_ARROW );
          hbrBackground  := COLOR_WINDOW;
          lpszMenuName   := Nil;
          lpszClassName  := 'Main Window';
          hIconSm        := LoadIcon(0, IDI_APPLICATION);
     End;

     If RegisterClassEx(WndClass) = 0  Then
     Begin
          MessageBox(0, PChar('Echec lors de l''enregistrement de la class !'),
                              PChar('Erreur'),
                              MB_ICONEXCLAMATION Or MB_OK Or MB_SYSTEMMODAL );
          Exit;
     End;

      MainWindow := CreateWindowEx( WS_EX_CLIENTEDGE,
                                  'Main Window',
                                  'Anno 1701 Terrain Converter !',
                                  WS_OVERLAPPEDWINDOW,
                                  50,
                                  50,
                                  640,
                                  480,
                                  0,
                                  0,
                                  hInstance,
                                  Nil );


     If ( MainWindow = 0 ) Then
     Begin
          MessageBox(0, PChar('Echec lors de la création de la fenêtre !'),
                              PChar('Erreur'),
                              MB_ICONEXCLAMATION Or MB_OK Or MB_SYSTEMMODAL );
          Exit;
     End;

     UpdateWindow( MainWindow );
     ShowWindow( MainWindow, SW_NORMAL );

     Repeat
           If PeekMessage( Msg, 000, PM_REMOVE ) Then
           Begin
                TranslateMessage( Msg );
                DispatchMessage( Msg );
           End
     Until Msg.Message = WM_QUIT;

     Halt( Msg.wParam );

end.


Und sowie ich jetzt Vorhabe mein Menu Kode hier Weiter einzuziehen.
Also zur welche Stelle kann ich der Menu Einziehen?

Denn der Menu muss ja Erst nach dem Haupt Fenster programmiert werden oder nicht?

Also ich dachte ich Starte mein programmier Funktion am ende der Haupt Fenster:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
 Repeat
           If PeekMessage( Msg, 000, PM_REMOVE ) Then
           Begin
                TranslateMessage( Msg );
                DispatchMessage( Msg );
           End
     Until Msg.Message = WM_QUIT;

     Halt( Msg.wParam );

(Also zu dieser Stelle wollte ich anfangen)


Ist diese Stelle Richtig?
zu "uses" muss ich Form zu seine Liste einfügen dies ist klar.


Moderiert von user profile iconNarses: Topic aus VCL (Visual Component Library) verschoben am So 15.08.2010 um 12:23
Moderiert von user profile iconmatze: Code- durch Delphi-Tags ersetzt


jaenicke - So 15.08.10 11:37

Wozu denn der ganze Aufwand? Warum nimmst du nicht einfach ein normales Fenster? :gruebel:


Delete - So 15.08.10 11:38

Hier gibt es Tutorials zu dem Thema: http://michael-puff.de/Programmierung/Delphi/Tutorials/Win32API/


kompas - So 15.08.10 22:01

Also Michael, ich kann mich nur rechtlich Bedanken, denn dies war alles was ich benötige als Hilfe für mein Programm fertig zu Bearbeiten.