C++ a odkazovani, jak je to vlastně?
- Coburn
- Začátečník

-
- Registrován: 12. čer 2006
- Bydliště: Kobenhavn, Denmark
- Kontaktovat uživatele:
Kompilátor tvrdí, že hInstance nebyla deklarována. Z jaké části hlavní funkce že ji mám zjistit?
Jinak jak jsem se tak koukal na ten RecEd, tak v něm se dá udělat celá vizuální stránka programu. Chápu to správně, že se v tomhle "nakreslí" vedlejší okno programu? Nebo se v něm dá udělat celý program?
Dialogy komunikují s hlavním oknem pouze přes proměnné ID_XXX?
díky
Jinak jak jsem se tak koukal na ten RecEd, tak v něm se dá udělat celá vizuální stránka programu. Chápu to správně, že se v tomhle "nakreslí" vedlejší okno programu? Nebo se v něm dá udělat celý program?
Dialogy komunikují s hlavním oknem pouze přes proměnné ID_XXX?
díky
CPU: Intel Core2 Duo E6300 2,33Ghz, GPU: Leadtek Winfast PX7600GS, MB: MSI P965 NEO-F, PSU-ASUS XXX 450W, HDD: Seagate Barracuda 7200.10, 320GB
- Coburn
- Začátečník

-
- Registrován: 12. čer 2006
- Bydliště: Kobenhavn, Denmark
- Kontaktovat uživatele:
heh, možná dělám všechno uplně špatně...
v ResEdu si mám vytvořit nové okno, nebo začít jinak.
na msdn jsem nice našel spoustu příkazů na formátování a řazení tabulky, ale ne syntax, jak ji vytvořit, tak jestli bys mi sem plz nenapsal jednoduchy příklad 2x2 tabulky a jak se do ní vkládá řetězec.
jinak za vše díky
v ResEdu si mám vytvořit nové okno, nebo začít jinak.
na msdn jsem nice našel spoustu příkazů na formátování a řazení tabulky, ale ne syntax, jak ji vytvořit, tak jestli bys mi sem plz nenapsal jednoduchy příklad 2x2 tabulky a jak se do ní vkládá řetězec.
jinak za vše díky
CPU: Intel Core2 Duo E6300 2,33Ghz, GPU: Leadtek Winfast PX7600GS, MB: MSI P965 NEO-F, PSU-ASUS XXX 450W, HDD: Seagate Barracuda 7200.10, 320GB
- €agle
- Středně pokročilý

- Registrován: 13. lis 2003
- Bydliště: Vlastní 3D svět :)
- Kontaktovat uživatele:
hInstance dostanes jako hThisInstance ve vstupni funkci programu (vetsinou pojmenovane jako Main nebo WinMain).
V ResEdu, pokud chces vytvorit dialogove okno, vytvoris novy projekt, das Project/Add dialog a potom tam uz jenom pridavas prvky, jake potrebujes. Je to v podstate WYSIWYG editor oken, pridas si tam tlacitka, texty a editboxy, nastavis jejich parametry a pak si to ulozis jako .rc soubor. Mel bych te jeste upozornit, ze ListView, TabView a podobne slozitejsi prvky nelze pouzit, jelikoz to nejsou zakladni soucasti oken a pri jejich pouziti ti program hned po spusteni spadne... Ty se pak musi vytvaret rucne.
Jinak na to MSDN jsi asi koukal spatne, jelikoz tady mas priklady vytvoreni tabulky, pridavani sloupcu i radku.
V ResEdu, pokud chces vytvorit dialogove okno, vytvoris novy projekt, das Project/Add dialog a potom tam uz jenom pridavas prvky, jake potrebujes. Je to v podstate WYSIWYG editor oken, pridas si tam tlacitka, texty a editboxy, nastavis jejich parametry a pak si to ulozis jako .rc soubor. Mel bych te jeste upozornit, ze ListView, TabView a podobne slozitejsi prvky nelze pouzit, jelikoz to nejsou zakladni soucasti oken a pri jejich pouziti ti program hned po spusteni spadne... Ty se pak musi vytvaret rucne.
Jinak na to MSDN jsi asi koukal spatne, jelikoz tady mas priklady vytvoreni tabulky, pridavani sloupcu i radku.
Eagle3D Engine under developement
Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
- Coburn
- Začátečník

-
- Registrován: 12. čer 2006
- Bydliště: Kobenhavn, Denmark
- Kontaktovat uživatele:
Ještě malá otázečka:
kompilátor hlásí chybu s řádkem
jak to mam opravit plz?
thx
kompilátor hlásí chybu s řádkem
Kód: Vybrat vše
icex.dwICC = ICC_LISTVIEW_CLASSES;
Kód: Vybrat vše
typedef struct tagINITCOMMONCONTROLSEX {
DWORD dwSize;
DWORD dwICC;
} INITCOMMONCONTROLSEX, *LPINITCOMMONCONTROLSEX;
void InitCommonControls(VOID);
HWND CreateListView (HWND hwndParent)
{
RECT rcl;
INITCOMMONCONTROLSEX icex;
// Ensure that the common control DLL is loaded.
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_LISTVIEW_CLASSES; // chyba
InitCommonControlsEx(&icex);
// Create the list-view window in report view with label editing enabled.
GetClientRect (hwndParent, &rcl);
HWND hWndListView = CreateWindow(WC_LISTVIEW,
"",
WS_CHILD | LVS_REPORT | LVS_EDITLABELS,
0,
0,
rcl.right - rcl.left,
rcl.bottom - rcl.top,
hwndParent,
(HMENU)ID_LISTVIEW,
hInst,
NULL);
return (hWndListView);
}CPU: Intel Core2 Duo E6300 2,33Ghz, GPU: Leadtek Winfast PX7600GS, MB: MSI P965 NEO-F, PSU-ASUS XXX 450W, HDD: Seagate Barracuda 7200.10, 320GB
- €agle
- Středně pokročilý

- Registrován: 13. lis 2003
- Bydliště: Vlastní 3D svět :)
- Kontaktovat uživatele:
To bys ve svem programu nemel mit, to uz je definovano v hlavickach Windows.
Co se toho listu tyce, tak nahrad cele tohle timhle
Kód: Vybrat vše
typedef struct tagINITCOMMONCONTROLSEX {
DWORD dwSize;
DWORD dwICC;
} INITCOMMONCONTROLSEX, *LPINITCOMMONCONTROLSEX;
void InitCommonControls(VOID);Co se toho listu tyce, tak nahrad cele tohle
Kód: Vybrat vše
INITCOMMONCONTROLSEX icex;
// Ensure that the common control DLL is loaded.
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_LISTVIEW_CLASSES; // chyba
InitCommonControlsEx(&icex);
Kód: Vybrat vše
InitCommonControls();Eagle3D Engine under developement
Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
- Coburn
- Začátečník

-
- Registrován: 12. čer 2006
- Bydliště: Kobenhavn, Denmark
- Kontaktovat uživatele:
diky
problem se posunul dal
In function `HWND__* CreateListView(HWND__*)':
`WC_LISTVIEW' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
`LVS_REPORT' undeclared (first use this function)
`LVS_EDITLABELS' undeclared (first use this function)
`ID_LISTVIEW' undeclared (first use this function)
`hInst' undeclared (first use this function)
[Build Error] [Test.o] Error 1
nemam neco specialniho includovat?
na MSDN o deklaraci nic nepsali
problem se posunul dal
Kód: Vybrat vše
HWND hWndListView = CreateWindow(WC_LISTVIEW,
"",
WS_CHILD | LVS_REPORT | LVS_EDITLABELS,
0,
0,
rcl.right - rcl.left,
rcl.bottom - rcl.top,
hwndParent,
(HMENU)ID_LISTVIEW,
hInst,
NULL);
return (hWndListView);
}
`WC_LISTVIEW' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
`LVS_REPORT' undeclared (first use this function)
`LVS_EDITLABELS' undeclared (first use this function)
`ID_LISTVIEW' undeclared (first use this function)
`hInst' undeclared (first use this function)
[Build Error] [Test.o] Error 1
nemam neco specialniho includovat?
na MSDN o deklaraci nic nepsali
CPU: Intel Core2 Duo E6300 2,33Ghz, GPU: Leadtek Winfast PX7600GS, MB: MSI P965 NEO-F, PSU-ASUS XXX 450W, HDD: Seagate Barracuda 7200.10, 320GB
- €agle
- Středně pokročilý

- Registrován: 13. lis 2003
- Bydliště: Vlastní 3D svět :)
- Kontaktovat uživatele:
- Coburn
- Začátečník

-
- Registrován: 12. čer 2006
- Bydliště: Kobenhavn, Denmark
- Kontaktovat uživatele:
thx, uz to jenom chce deklaraci hInst
když si do zavorky pripisu ", HINSTANCE hInst", tak to vyhodí build error
pak bych se chtel zeptat, jestli se dá jednoduše říct strstr(*,*), aby nerozlišoval velká a malá písmena.
když si do zavorky pripisu ", HINSTANCE hInst", tak to vyhodí build error
Kód: Vybrat vše
HWND CreateListView (HWND hwndParent/*, HINSTANCE hInst*/)
{
RECT rcl;
InitCommonControls();
GetClientRect (hwndParent, &rcl);
HWND hWndListView = CreateWindow(WC_LISTVIEW,
"",
WS_CHILD | LVS_REPORT | LVS_EDITLABELS,
0,
0,
rcl.right - rcl.left,
rcl.bottom - rcl.top,
hwndParent,
(HMENU)ID_LISTVIEW,
hInst,
NULL);
return (hWndListView);
}CPU: Intel Core2 Duo E6300 2,33Ghz, GPU: Leadtek Winfast PX7600GS, MB: MSI P965 NEO-F, PSU-ASUS XXX 450W, HDD: Seagate Barracuda 7200.10, 320GB
- €agle
- Středně pokročilý

- Registrován: 13. lis 2003
- Bydliště: Vlastní 3D svět :)
- Kontaktovat uživatele:
HINSTANCE hInst by melo jit, pokud se ti to nekrizi s predchozi deklaraci te funkce (tzn. nekde nahore v programu mas deklaraci a az dale v kodu definujes vlastni funkci), co to hlasi za chybu?
strstr nemuzes primo rict, aby rozlisovala velka a mala pismena. Moznosti je projit retezec po jednotlivych znacich a pomoci funkci tolower() a toupper() prevest cely text bud na velka nebo na mala pismena a ten nasledne porovnavat... Nejsem si ale jisty, zda to bude fungovat i pro ceske znaky typu ěščř...
strstr nemuzes primo rict, aby rozlisovala velka a mala pismena. Moznosti je projit retezec po jednotlivych znacich a pomoci funkci tolower() a toupper() prevest cely text bud na velka nebo na mala pismena a ten nasledne porovnavat... Nejsem si ale jisty, zda to bude fungovat i pro ceske znaky typu ěščř...
Eagle3D Engine under developement
Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
- Coburn
- Začátečník

-
- Registrován: 12. čer 2006
- Bydliště: Kobenhavn, Denmark
- Kontaktovat uživatele:
neni chyba, ze predchazejici text mam napsany tesne PŘED
"LRESULTS CALLBACK" před MainWndProc?
chyba
Test.o(.text+0x3be5) In function `Z14CreateListViewP6HWND(HINSTANCE__ *)':
[Linker error] undefined reference to `InitCommonControls@0'
Test.o(.text+0x3be5) ld returned 1 exit status
Makefile.win [Build Error] [WinTest.exe] Error 1
jinak jako v notepadu, wordu apod se při vyhledávání v textu rozlišování písmen dělá taky takhle komplikovaně? Nemaj na to nějakou knihovnu?
"LRESULTS CALLBACK" před MainWndProc?
chyba
Test.o(.text+0x3be5) In function `Z14CreateListViewP6HWND(HINSTANCE__ *)':
[Linker error] undefined reference to `InitCommonControls@0'
Test.o(.text+0x3be5) ld returned 1 exit status
Makefile.win [Build Error] [WinTest.exe] Error 1
jinak jako v notepadu, wordu apod se při vyhledávání v textu rozlišování písmen dělá taky takhle komplikovaně? Nemaj na to nějakou knihovnu?
CPU: Intel Core2 Duo E6300 2,33Ghz, GPU: Leadtek Winfast PX7600GS, MB: MSI P965 NEO-F, PSU-ASUS XXX 450W, HDD: Seagate Barracuda 7200.10, 320GB
- €agle
- Středně pokročilý

- Registrován: 13. lis 2003
- Bydliště: Vlastní 3D svět :)
- Kontaktovat uživatele:
- Coburn
- Začátečník

-
- Registrován: 12. čer 2006
- Bydliště: Kobenhavn, Denmark
- Kontaktovat uživatele:
ok
jak to mám zavolat? když to se všim všudy přetáhnu do hwndMainProc za WM_CREATE, vyhodí to chybu, když to přetáhnu samotné, chybí deklarace hInstance.
Tohle jsem zkoušel zapsat do WM_CREATE, nevyhodi to chybu, program se spustí, ale nikde tam neni vidět mřížka. hwndParent jsemzměnl n hwnd.
Diky
jak to mám zavolat? když to se všim všudy přetáhnu do hwndMainProc za WM_CREATE, vyhodí to chybu, když to přetáhnu samotné, chybí deklarace hInstance.
Kód: Vybrat vše
HWND CreateListView(HWND hwnd, HINSTANCE hInst);
Diky
CPU: Intel Core2 Duo E6300 2,33Ghz, GPU: Leadtek Winfast PX7600GS, MB: MSI P965 NEO-F, PSU-ASUS XXX 450W, HDD: Seagate Barracuda 7200.10, 320GB
- €agle
- Středně pokročilý

- Registrován: 13. lis 2003
- Bydliště: Vlastní 3D svět :)
- Kontaktovat uživatele:
Nemuzes psat HWND CreateListView(), kdyz tu funkci chces zavolat, tvari se to potom jako deklarace, staci CreateListView(). Jinak te musim upozornit, ze samotne vytvoreni okna jeste neznamena, ze uvidis tabuku. Dokud tam pri nejmensim nepridas sloupce, uvidis nanejvys bilou plochu.
Eagle3D Engine under developement
Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
- Coburn
- Začátečník

-
- Registrován: 12. čer 2006
- Bydliště: Kobenhavn, Denmark
- Kontaktovat uživatele:
no, tak tabulku jsem odložil na později, ale teď mě spíš začal zajímat trackbar; na MSDN jsem ho našel, ale jeho vytvořeni bylo podobně dlouhé, jako u tabulky.
Nedá se udělat jednodušším způsobem?
Díky
Nedá se udělat jednodušším způsobem?
Díky
CPU: Intel Core2 Duo E6300 2,33Ghz, GPU: Leadtek Winfast PX7600GS, MB: MSI P965 NEO-F, PSU-ASUS XXX 450W, HDD: Seagate Barracuda 7200.10, 320GB
- €agle
- Středně pokročilý

- Registrován: 13. lis 2003
- Bydliště: Vlastní 3D svět :)
- Kontaktovat uživatele:
Bohuzel nejde, alespon tedy v DevC++ bez pouziti nejake GUI knihovny (jako WxWidgets). V DevC++ musis vsechno napsat v kodu pomoci WinApi. Docela pekny clanek o tom najdes tady na Builder.cz
Eagle3D Engine under developement
Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
- Coburn
- Začátečník

-
- Registrován: 12. čer 2006
- Bydliště: Kobenhavn, Denmark
- Kontaktovat uživatele:
- Coburn
- Začátečník

-
- Registrován: 12. čer 2006
- Bydliště: Kobenhavn, Denmark
- Kontaktovat uživatele:
a ješte nechybí mi tady nějakej údaj, kterej je důležitej pro překreslování při změně editboxu, případně pro podporu UpdateWindow(hwnd);
Díky
Kód: Vybrat vše
/* All windows of this class redraw when resized. */
wndclass.style = CS_HREDRAW | CS_VREDRAW;
CPU: Intel Core2 Duo E6300 2,33Ghz, GPU: Leadtek Winfast PX7600GS, MB: MSI P965 NEO-F, PSU-ASUS XXX 450W, HDD: Seagate Barracuda 7200.10, 320GB
- €agle
- Středně pokročilý

- Registrován: 13. lis 2003
- Bydliště: Vlastní 3D svět :)
- Kontaktovat uživatele:
O zadnem jednoduchem zpusobu nevim...Coburn píše:Dá se nějak přes nějakou knihovnu nebo "prostě nějak" nasát do programu text ze souboru s koncovkou *.doc? fakt bych to potřeboval.
Díkec
Co se tyce toho editboxu, tak myslim, ze nic nechybi
Eagle3D Engine under developement
Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
- Coburn
- Začátečník

-
- Registrován: 12. čer 2006
- Bydliště: Kobenhavn, Denmark
- Kontaktovat uživatele:
heh
a je tady nějaká chyba na ten způsob?
Tohle je příklad, jak se v mém proramu vytváří text, nevim, kde může být chyba
Díky
a je tady nějaká chyba na ten způsob?
Kód: Vybrat vše
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps);
GetClientRect (hwnd, &rc);
rc.bottom = rc.bottom*2-9;
DrawText (hdc, "Text", -1, &rc,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint (hwnd, &ps);
break;
Díky
CPU: Intel Core2 Duo E6300 2,33Ghz, GPU: Leadtek Winfast PX7600GS, MB: MSI P965 NEO-F, PSU-ASUS XXX 450W, HDD: Seagate Barracuda 7200.10, 320GB
- €agle
- Středně pokročilý

- Registrován: 13. lis 2003
- Bydliště: Vlastní 3D svět :)
- Kontaktovat uživatele:
A nebylo by lepsi misto rucniho psani textu pouzit Static control, ktery jenom umistis do dialogu a pomoci SetDlgItemText mu nastavis pozadovany text? V tom tvem kodu bych zkusil odebrat to rc.bottom = rc.bottom*2-9; a do DrawText pridat parametr DT_NOCLIP.
Eagle3D Engine under developement
Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ