Hello James,
I use a RichEdit control to do something similar.
Hard code RTF commands like this:
' Create RTF header here...
s_accumulate_header += "20:00\par" + CRLF
s_accumulate_header += "20:30\par" + CRLF
s_accumulate_header += "21:00\par" + CRLF
s_accumulate_header += "21:30\par" + CRLF
s_accumulate_header += "\par" + CRLF
s_accumulate_header += "\cf1\ul Notes:\cf0\ulnone\par" + CRLF
s_accumulate_header += "\par" + CRLF
s_accumulate_header += "Use check mark \cf3\f2\fs18\lang1033\'fc\cf0\f1\fs20\lang4105 for completed items (copy/paste).\par" + CRLF
s_accumulate_header += "\par" + CRLF
s_accumulate_header += "}" + CRLF
s_accumulate_header += Chr( 0 )
'' Attempt to create new file
Dim as Long o = Open( t_db.JournalLog For Append as #eFileNum.journaldb )
If o = 0 Then '' Good Open
'' Creates file in RTF format (this header string)
Put #eFileNum.journaldb, 1, s_accumulate_header
Close #eFileNum.journaldb
EndIf
Then load the created file into a richtext control. like so RichEdit_LoadRtfFromFileW( hWnd, some_file_name )
This works for me as I save each file with a specific date for archiving purposes. CRM1.jpg (some lines of code were moved around for aesthetic purposes)
On another project I used separate Labels to create a grid like appearance with different formatting depending on the input data. Emulator...jpg
I'm sure Paul or Jose can point you towards something much more elegant than this, but it works for my needs; maybe yours too.