Mohl by mi někdo objasnit jaký je rozdíl mezi těmito dvěma procedurama? V jednom kódu se WNDPROC používá na proceduru přiřazenou editboxu, v jiném kódu je DLGPROC přiřazený stránce Property Sheet page. Rozdíl?
Fórum › C / C++
Jaký je rozdíl mezi WNDPROC a DLGPROC?
#1 oxidián
Především v návratové hodnotě, ve windowproc musíš pro výchozí zpracování vrátit výsledek volání DefWindowProc, zatímco v dlgproc vracíš 1 nebo 0 podle toho zda jsi zprávu zpracoval. Viz. dokumentace Windows SDK. Samozřejmě i u dialogu můžeš tookno subclassovat, abys mohl např. měnit parametry přijaté zprávy před jejím předáním o výchozího zpracování.
Radek Chalupa
- individuální konzultace, školení programování (C/C++, WinAPI, COM, ActiveX, ATL, C#, NET Framework, MFC)
- vývoj software na zakázku
http://www.radekchalupa.cz
Včera večer jsem se pokoušel zjistit jak bych mohl zjistit aktuální stránku přímo z hlavní dialogové procedury. Zjistil jsem, že tam klasický hlavní procedura okna vůbec není, místo toho je tam hlavní procedura dialogového okna Property Sheet. Bohužel jsem si nevšiml že jsem během pokusu něco rozladil, ale na to jsem přišel až ráno, takže nevím co je příčinou problému. Jde o to, že při kliknutí na Property Sheet buttons se nezobrazují stránky. Je zobrazna jen ta první. Během pokusu o debug jsem zjistil, že program nespustí dialogové procedury (callbacky) které jsou přiřazeny jednotlivým stránkám, ale zaboha nemohu přijít nato proč. Prošel jsem snad všechny handles a vypadají že jsou nastaveny správně. V programu ale není procedura na zachtávání oken, všechny procedury se týkají Property sheet nebo dialogových oken. Prosím vás tedy o radu jak postupovat, abych to mohl odladit, nebo sem přiložím i diagram programu a linky na soubory.
Hlavní soubor programu aokts.cpp:
http://paste.ofcode.org/7zksRqzxf3rhsqSiDdzgUD
je to trochu redukované, ale většina věcí se stejně includuje v aokts.h
několik nedůležitých dlgProc....
http://paste.ofcode.org/PnZ2d2jqSnm3v8kAZHFq5m
editorsDlgProc deklaruje všechny procedury modulů (stránek sheetu).
http://paste.ofcode.org/5JZei8nNatXPvzLFyRkXvj
makewindows.cpp vytváří Property Page Sheet, stránky a definuje odkazy na dialogové procesy (procs)
http://paste.ofcode.org/xwuu9E6y4NNebpwDYKaiCy
Chyba by zřejmě měla být někde v aokts.cpp/.h nebo main_propsheet_dlgProc.cpp/.h.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Jaký učební materiál ? Rozdíl mezi P x TP ? — založil gatuso
Rozdíl mezi == a is — založil Ahoj3
Rozdíl mezi C, C++ a C# — založil Murmand
Rozdíl mezi zápisy — založil Tomas
Rozdil mezi class a id — založil Václav Žitek
Moderátoři diskuze