Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

21

02.12.2016, 22:12

@BlueCobold
Stimmt du hast völlig recht, wie konnte ich nur so dumm sein ?( :crazy:

EDIT: Funktioniert leider noch immer nicht :dash:

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

22

02.12.2016, 22:13

13 Bits sind übrigens nicht 13 Zeichen. Ein Zeichen ist ein Byte groß und ein Byte hat 8 Bit.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

23

02.12.2016, 22:15

@BlueCobold
Ups da hab ich wohl den Namen Bits und Bytes verwechselt, danke für die Verbesserung :)

24

02.12.2016, 23:09

Auch hier wäre das Zählen angebracht.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
TCHAR Combobox_File[9][16] =
{                /* ^ */
                 /* |_________________ */
                               /*    | */
    TEXT("New"),               /* <- 1 */
    TEXT("Open"),              /* <- 2 */
    TEXT("Add"),               /* <- 3 */
    TEXT("Save      Ctrl+S"),  /* <- 4 */
    TEXT("Save As..."),        /* <- 5 */
    TEXT("Save All"),          /* <- 6 */
    TEXT("Exit        Alt+F4") /* <- 7 */
};

EDIT: Funktioniert leider noch immer nicht :dash:
Habe es ja Angekündigt :D
Also ich muss voraus schicken das ich nicht weiß ob folgendes dein Fehler behebt! Auf jeden werden ein paar Fehler behoben.
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

25

02.12.2016, 23:51

@Koschi, @BlueCobold
Ich danke euch vielmals, konnte auf jeden Fall schon viele neue Sachen lernen, auch wenn sie mein Problem
noch nicht behoben haben :thumbsup:

Könnte eventuell ein Fehler im WndProc sein, weil in allen anderen Funktionen entdecke ich keine Fehler. :hmm:
Das Fenster erstellt es problemlos und er greift auch problemlos auf die Init Methode über den Konstruktor rüber und holt da
alle seine Informationen.

C-/C++-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
LRESULT CALLBACK wWindow::WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    LRESULT result = 0;

    if (message == WM_CREATE)
    {
        LPCREATESTRUCT pcs = (LPCREATESTRUCT)lParam;
        wWindow *pWindow = (wWindow *)pcs->lpCreateParams;

        ::SetWindowLongPtrW(
            hwnd,
            GWLP_USERDATA,
            PtrToUlong(pWindow)
        );

        result = 1;
    }
    else
    {
        wWindow *pWindow = reinterpret_cast<wWindow *>(static_cast<LONG_PTR>(
            ::GetWindowLongPtrW(
                hwnd,
                GWLP_USERDATA)));

        bool wasHandled = false;

        if (pWindow)
        {
            switch (message)
            {
                case WM_COMMAND:
                {
                    // If the user makes a selection from the list:
                    //   Send CB_GETCURSEL message to get the index of the selected list item.
                    //   Send CB_GETLBTEXT message to get the item.
                    //   Display the item in a messagebox.
                    if (HIWORD(wParam) == CBN_SELCHANGE)
                    {
                        int ItemIndex = SendMessage((HWND)lParam, (UINT)CB_GETCURSEL,
                                                   (WPARAM)0, (LPARAM)0);

                        TCHAR  ListItem[256];

                        (TCHAR)SendMessage((HWND)lParam,
                                          (UINT)CB_GETLBTEXT,
                                          (WPARAM)ItemIndex,
                                          (LPARAM)ListItem);
                         
                        // TODO:
                        // Do something after that
                    }

                    wasHandled = true;
                    result = 0;
                } break;

                // The WM_DISPLAYCHANGE message is sent to all windows when the display resolution has changed.
                case WM_DISPLAYCHANGE:
                {       
                    InvalidateRect(hwnd, NULL, FALSE);
                } 
                wasHandled = true;
                result = 0;
                break;

                // Destroy the window
                case WM_DESTROY:
                {
                    PostQuitMessage(0);
                }       
                wasHandled = true;
                result = 1;
                break;
            }
        }

        if (!wasHandled)
        {
            result = DefWindowProc(hwnd, message, wParam, lParam);
        }
    }

    return result;
}

Werbeanzeige