Toon posts:

[C/Win32] Window wordt niet getoond

Pagina: 1
Acties:

Verwijderd

Topicstarter
Tijdens het scannen van enkele bestanden wil ik een dialogbox met de naam van het bestand en een progressbar er in laten zien.

C:
1
2
3
4
5
6
7
8
9
10
BOOL Progress_Create() {
    if (IsWindow(hWndProgress)) return FALSE;
    hWndProgress=CreateDialog(hInst, MAKEINTRESOURCE(IDD_PROGRESS), hWndMain, (DLGPROC)ProgressProc);
    ShowWindow(hWndProgress, SW_SHOW);
    // Ik heb het volgende al geprobeerd: 
    WaitMessage();
    UpdateWindow(hWndProgress);
    Sleep(100);
    return (hWndProgress!=NULL);
}


De window zelf wordt niet getoond, de controls er in wel en die worden ook geupdate. Op de Annuleren knop drukken, die ook in de dialogbox staat, gaat echter niet (hij drukt niet in).

Ik vermoed dat het programma te druk bezig is met scannen om het venster op het scherm te krijgen en de Annuleren-knop af te handelen. Hoe los ik dit op?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

En je hebt je window procedure al gecheckt of alle WM_PAINT messages binnenkomen en je wel de goeie DialogProc aanroept na afloop?

Professionele website nodig?


  • CyBoB
  • Registratie: Januari 2001
  • Laatst online: 24-12-2025

CyBoB

.::BURB::.

en in je window proc van je dialoog wel standaard FALSE returned voor alle berichten die je niet afhandeld?

Verwijderd

Topicstarter
Mijn DialogProc returnt helemaal niks, misschien is dat het probleem. Ik had het schrijven hiervan namelijk uitgesteld totdat ik dit probleem had opgelost. :P

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Uhm ja zonder DialogProc worden niet alleen geen acties van jouw kant uitgevoerd, maar ook geen default actions :D
Typically, the dialog box procedure should return TRUE if it processed the message, and FALSE if it did not. If the dialog box procedure returns FALSE, the dialog manager performs the default dialog operation in response to the message.
Wat heb je d'r nu uberhaupt dan staan als ie 'niets' returnt? :?

[ Voor 59% gewijzigd door curry684 op 17-02-2005 12:28 ]

Professionele website nodig?


Verwijderd

Topicstarter
curry684 schreef op donderdag 17 februari 2005 @ 12:26:
Wat heb je d'r nu uberhaupt dan staan als ie 'niets' returnt? :?
Niets. :P

C:
1
2
INT_PTR CALLBACK ProgressProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
}


Ik heb een return FALSE er in gezet en nu wordt het venstertje wel getoond. De Annuleren-knop lijkt alleen nog steeds niet te werken.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Je bedoelt 'hij doet niets als ik erop druk' of 'hij tekent niet'?

Professionele website nodig?


Verwijderd

Topicstarter
Hij tekent wel, maar hij drukt niet in en ik de DialogProc krijgt ook geen WM_COMMAND message.

Verwijderd

Topicstarter
Kickje: annuleren knop doet het niet.
Pagina: 1