Win 32 api Dialogy – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Win 32 api Dialogy – C / C++ – Fórum – Programujte.comWin 32 api Dialogy – C / C++ – Fórum – Programujte.com

 

whysper0
Newbie
3. 2. 2010   #1
-
0
-

Ahoj všem,
chtěl bych ze zeptat na způsob otevření dialogového okna po kliknutí na menu. Našel jsem toto:



case IDM_ADD_TRENINK:
DialogBox(WndProc, MAKEINTRESOURCE(IDD_DIALOG1), wParam, lParam);
return 0;

Ale toto nejede hází to chybu:


63 C:\Users\whysper\Desktop\Cykloregistr\cykloregistr.cpp cannot convert `LRESULT (*)(HWND__*, UINT, WPARAM, LPARAM)' to `HINSTANCE__*' for argument `1' to `int DialogBoxParamA(HINSTANCE__*, const CHAR*, HWND__*, BOOL (*)(HWND__*, UINT, WPARAM, LPARAM), LPARAM)'

a tuto:


C:\Users\whysper\Desktop\Cykloregistr\cykloregistr.cpp In function `LRESULT WndProc(HWND__*, UINT, WPARAM, LPARAM)':


Prosím někdo mi poraďte díky moc.

Nahlásit jako SPAM
IP: 77.48.243.–
_Radek_
~ Anonymní uživatel
88 příspěvků
4. 2. 2010   #2
-
0
-

Zkus se nejdrive podivat, jake parametry ma funkce DialogBox. Podle tveho prispevku sice nevim, jak to mas v odu presne vymyslene, ale vypada to, ze v tom je zmatek, http://msdn.microsoft.com/en-us/library/ms645452(VS.85).aspx
Ve zkratce prvni parametr je HINSTANCE handle tvoji aplikace, potom MAKEINTRESOURCE(IDD_DIALOG1), treti parametr je HWND handle rodicovskeho okna, a treti je procedura zprav pro dialog.

Nahlásit jako SPAM
IP: 91.187.60.–
whysper0
Newbie
4. 2. 2010   #3
-
0
-

No takže jsem zkusil toto:



case IDM_ADD_TRENINK:
DialogBox(NULL, MAKEINTRESOURCE(IDD_DIALOG1), NULL, NULL);
return 0;

Po kliknutí na položku menu "Přidat --> trénink se sice dialog zobrazí tak jak má ale nereaguje na nic kromě minimalizace.

Nahlásit jako SPAM
IP: 90.177.142.–
liborb
~ Redaktor
+18
Guru
4. 2. 2010   #4
-
0
-

To se divím, že to dělá vůbec něco. Musíš předat všechny parametry tj. ani jedno NULL.

Nahlásit jako SPAM
IP: 85.207.166.–
whysper0
Newbie
4. 2. 2010   #5
-
0
-

OK,
tak jsem tam dal toto a zdá se, že vše už funguje:



case IDM_ADD_TRENINK:
DialogBox(NULL, MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC)DialogProc);
return 0;


Proces okna:


INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch ( uMsg )
{
case WM_COMMAND:
switch ( LOWORD(wParam) )
{
case IDOK:
case IDCANCEL:
EndDialog(hwndDlg, LOWORD(wParam));
break;
}
break;
}
return FALSE;
}

Nahlásit jako SPAM
IP: 90.177.142.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 121 hostů

Podobná vlákna

Win 32 api Dialogy — založil whysper

Win API — založil Midnight

Win 32 API — založil radvis

Psaní Win API — založil matesz

Klávesnice ve Win API — založil Adam Streck

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý