25. august 2003 - 13:24
Der er
19 kommentarer og 1 løsning
Justering af længden på en spacecharacter
Er det muligt at justere længden på en space character så den har samme fuld længde istedet for kun den halve længde af en normal char?? Eller evt. er det muligt at indsætte en tab (0x9) i en listbox? Jeg bruger en CString til at arbejde med strengen. Jeg skal have nogle bestemte værdier i strengene til at stå lige under hinanden.
Annonceindlæg fra DE-CIX
25. august 2003 - 13:26
#1
Længden af en karakter afhænger af skrifttypen...
25. august 2003 - 13:26
#2
Hvis teksten skal justeres er en tabel altid et godt udgangspunkt. Med hensyn til spacekarakteren er der nogle skrifttyper hvor alle tegn (inkl. space) fylder lige meget og andre hvor de ikke gør.
25. august 2003 - 13:26
#3
Det nemeste er - i min verden - at skifte fonten ud med en, hvor alle karakterer fylder lige meget. F.eks. er Courier skrifttypen egnet.
25. august 2003 - 13:26
#4
Hvis du fx vælger en monospace skrifttype, vil alle karakterer have samme bredde.
25. august 2003 - 13:28
#5
anhansen<< hvordan laver man en tabel i en listbox?????
25. august 2003 - 13:34
#6
Nej du kan ikke ændre længden af en space character fordi længden/størrelsen bestemmes af fonten. Der findes to slags fonte TrueType og Fixed fonte. I en Fixed font fylder alle character lige meget (de har den samme bredde). I en True Type font varierer bredden af de enkelte characterer. Det nemmeste er at gøre som jpk foreslår nemlig at bruge en Fixed font som f.eks. Courier.
25. august 2003 - 13:43
#7
Der må jeg lige melde pas. Desværre. Så måske løsningen med en monospace skrifttype er at foretrække.. Med mindre der er andre der kan komme med en løsning på det med tabel i listbox?
25. august 2003 - 13:48
#8
Du kan ikke lave en tabel i en std listbox... Du kan dog anvende en listbox med flere kolonner.
25. august 2003 - 13:56
#9
Hvordan virker det med en ListBox med flere kolonner?????
25. august 2003 - 14:03
#10
Jeg skal prøve at illustrere det herunder (håber det ligner noget) Alm. listbox __________ |__________| |__________| |__________| |__________| Listbox med 2 kollonner ___ ______ |___|______| |___|______| |___|______| |___|______|
25. august 2003 - 14:05
#11
OK! Det ligne jo noget jeg kan bruge!
25. august 2003 - 14:06
#12
Hvordan bruger man en multicolumn listbox? Jeg mener, hvordan placerer man tingene i en ny kolonne??
25. august 2003 - 14:16
#13
Eftersom du bruger CString, går jeg udfra du bruger MFC generelt..? Hvis det er tilfældet, kan du måske anvende en CListCtrl, den har mulighed for flere kolonner.
25. august 2003 - 14:20
#14
Understående er et eksempel på brugen: (m_List er en membervariabel af typen CListCtrl) m_List.InsertColumn(0, "Column 1", LVCFMT_LEFT, 120); m_List.InsertColumn(1, "Column 2", LVCFMT_LEFT, 120); m_List.InsertColumn(2, "Column 3", LVCFMT_LEFT, 120); CString strColumn; for(int nRow=0; nRow<5; ++nRow) { m_List.InsertItem(nRow, ""); for(int nColumn=0; nColumn<3; ++nColumn) { strColumn.Format("%d%d", nColumn+1, nRow+1); m_List.SetItemText(nRow, nColumn, strColumn); } }
25. august 2003 - 14:53
#15
jeg vil gerne bruge en CListBox.... hvordan ændrer man fonten til f.eks. Courier?
25. august 2003 - 15:14
#16
Du kan ændre fonten via SetFont metoden (nedarvet fra CWnd). Metoden tager et argument, nemlig et CFont objekt, som kan initialiseres som følger: // 12pt font CFont font; font.CreatePointFont(120, "Times New Roman", NULL);
25. august 2003 - 15:36
#17
nu var det lige courier jeg ville bruge da alle karakterer har samme størrelse.. jeg har gjort følgende.. CListBox* list = (CListBox*) (GetDlgItem( IDC_OS_LIST )); CFont font; font.CreatePointFont(120, "Courier New", NULL); list->SetFont(&font); men fonten bliver ikke ændret...
25. august 2003 - 15:38
#18
Laver du fonten på stack'en? Du bliver nødt til at lave fonten som en member på klassen eller med med new (på heap'en), ellers eksisterer den jo kun inde i din funktion...
12. oktober 2003 - 15:49
#19
Har du fundet ud af noget... Er der nogle der skal ha point eller skal der bare lukkes?
08. januar 2004 - 13:02
#20
Jeg lukker lige spørgsmålet...
Kurser inden for grundlæggende programmering