Avatar billede benjax Nybegynder
18. november 2003 - 15:03 Der er 6 kommentarer og
2 løsninger

Ændring af navn på ressource i C

Jeg har en CONTROL defineret i en dialog således:

CONTROL "15?02???i", Belob, WC_AMT_EDIT, OS2OPT_1537 | WS_BORDER | ES_RIGHT | WS_GROUP | WS_TABSTOP | WS_VISIBLE, 73, 99, 72, 11

Der findes en klasse, som implementerer denne control ok. Men jeg har brug for at ændre navnet "15?02???i" til noget andet (navnet er faktisk et udtryk for beløbsfeltets formattering ved indtastning).

Hvordan ændrer jeg navnet (og dermed formatteringen) på runtime-tidspunktet inden dialogboxen bliver vist? (C-kode).

mvh&tak
Avatar billede segmose Nybegynder
18. november 2003 - 15:52 #1
Er det en dynamisk genereret control? hvis ja så skift "15?+2???i" ud med navnet på et char array som du selv udfylder før du opretter den.
Avatar billede benjax Nybegynder
18. november 2003 - 18:41 #2
Det ville jo være nemt nok, men nej.

Det er defineret i en .dlg-fil dannet med en ressourceeditor. Hvis man kunne ændre de kompilerede ressourcer på runtimetidspunktet, kunne det måske være løsningen. Men hvordan får man fat i disse resourcer?

Andre løsninger? Jeg har sourcen til den klasse, som implementerer control'en.
Avatar billede bertelbrander Novice
18. november 2003 - 20:16 #3
Hvis du har sourcen til control'en kan du måske se strengen i class'en og ændre den der?
Avatar billede benjax Nybegynder
18. november 2003 - 20:25 #4
Jeg vil meget gerne undgå at skulle rette denne source til, da det er noget, der allerede kører i andre forbindelser, og som derfor nødigt må ændres. Men det burde da heller ikke være nødvendigt?

Er der ikke en metode til at se ressourcerne, der er kompileret ind i filen, og så ændre deres properties?
Avatar billede bertelbrander Novice
18. november 2003 - 22:02 #5
Jeg ved ikke om man kan få fat på resourcen runtime, eller om man kan ændre dem hvis man kan.

Du kan måske bruge GetDlgItem(...) til at få fat i control'en efter at den er create'et, og så ændre strengen den vej.

En anden metode kunne være at lave en ny klasse der arver fra den oprindelige klasse, og så lave ændringerne i den nedarvede klasse.
Avatar billede jpk Nybegynder
19. november 2003 - 09:10 #6
Det er vel "bare" navnet på kontrollen..?
Du kan ikke rette rescourcen runtime, men du kan ændre kontrollens navn, fx vha en WM_SETTEXT message.

Er det ren C?
Ikke noget C++, MFC eller andet?
Avatar billede benjax Nybegynder
19. november 2003 - 10:39 #7
WM_SETTEXT går ikke, da controllen bruger denne til noget andet, nemlig feltets værdi, hvorimod navnet angiver feltets formattering. Desuden skal dette være sat op inden WM_CREATE handles.

Det er ren C, og jeg bruger Borland C++ 5.02 compileren.
Avatar billede benjax Nybegynder
19. november 2003 - 12:02 #8
Nu har jeg måttet bide i det sure æble og lave det på en anden måde, desværre.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester