c - Hvordan kan jeg få min MessageBox til at dukke op på toppen af ​​alle former?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg giver i øjeblikket information til brugeren med en beskedboks i mit C-program, men meddelelsesboksen vises bag alle andre former for min ansøgning.


Hvordan kan jeg bringe det frem, så det vises foran alle mine former, eller sætte dets forælder?


Her er koden jeg bruger til at vise meddelelsesboksen:


MessageBox(0,error\_msg, "Error - No Algorithm", MB\_OK );

Bedste reference


Årsagen til at det kommer bag alle former nu er, fordi du ikke har angivet et ejervindue. Det får det til at vises direkte oven på skrivebordet vinduet. Problemet er, at dine andre vinduer allerede dækker op i skrivebordet vinduet, så de også blissigt fortsætter med at dække din meddelelsesboks også.


Løsningen, som du formoder, er at angive et af dine vinduer som ejer for meddelelsesboksen. Det gør du ved at angive deres vindueshåndtag (HWND) som det første argument til funktionen:


MessageBox(hWnd,                    // the window handle for your owner window
           error\_msg,               // the message to be displayed
           "Error - No Algorithm",  // the title
           MB\_OK);                  // flags indicating contents and behavior


Dokumentationen indeholder yderligere oplysninger. [9]

Andre referencer 1


Den første parameter til MessageBox er HWND til forælder til. 0 eller NULL betyder 'ingen forælder', så den resulterende meddelelsesboks vil ikke være modal. Du skal forsyne den overordnede HWND for at få den adfærd, du vil have. [10]

Andre referencer 2


Sen til dette men bare søg efter vinduet efter klasse eller titel ved hjælp af FindWindow og lever det HWND som den første parameter til MessageBox.