|
On my machine ( W2000 ) LPTSTR is a LPWSTR. I *believe* LPTSTR allows for Unicode by changing the type in the same way that _T does it for a literal string, however my knowledge of suck things is a *little* rusty, so I'm open to correction.
If you need a wide string from CString you can either call AllocSysString, or you can #include comdef.h and cast the underlying char * to bstr_t.
Christian
As I learn the innermost secrets of the around me, they reward me in many ways to keep quiet.
Men with pierced ears are better prepared for marriage. They've experienced pain and bought Jewellery.
|
|
|
|
|
well, has anyone a gun? i used a wrong variable i think that's why my conversions didn't work...
i think i never realized that without the ShellExecute; it always opened the c: folder. so thanks Justin, now i can get back to work
greetz,
McEck
|
|
|
|
|
spawn and exec accept a const char *, not a char *. CString has a conversion operator. This means that you can use CString instead of const char*:
CString strx = "someprog.exe";
_execl(strx, "arg1", "arg2", NULL);
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
sounds easy
i think i'll test that.
greets,
McEck
|
|
|
|
|
Hello everyone,
I'm trying to set the charset of my CListCtrl to Turkish. Nothing complicated about the code:
CFont* pFont = new CFont;
pFont->CreateFont(12, 0, 0, 0, 0, 0, 0, 0,
TURKISH_CHARSET, 0, 0, 0, 0, "Verdana");
m_listCtrl.SetFont(pFont, TRUE);
But it doesn't work! It goes to Verdana okay, but the charset is just the standard one, not Turkish. It's quite bizarre: when I get its font later (with SendMessage(WM_GETFONT)) and look at the properties with GetLogFont, the lfCharSet IS equal to TURKISH_CHARSET. But there's no evidence of that in the way characters display in the CListCtrl.
I found a post about this exact same problem from a while ago, wrote to the guy, but apparently he found no solution.
If anyone can tell me if I'm doing something wrong, or suggest a workaround, I would be very greatful.
best regards,
Stephen Wilson
|
|
|
|
|
Hello, the codegurus around the world.;)
Which OS do you use?
If your OS doesn't support Turkish, OS can't display Turkish.
In Windows 2000 and Windows XP, we can display Japanese on English Windows XP
as long as we install Japanese font to Windows 2000 and Windows XP.
However, I found that XP (RC2) has something wrong with the align of Japanese
on English Windows XP.
Have a nice day!
-Masaaki Onishi-
|
|
|
|
|
Masaaki, thanks for your reply. I use Win98. But this is not the problem, because I can use the Turkish charset in many other contexts. For instance, I have tried assigning the same CFont to an edit box, and it works fine. Btw, the Turkish alphabet is like English but just has a few characters with unusual diacritics, hence the need for its own charset. As far as I know, all OSs would support Turkish.
I'm almost certain this is a bug with CListCtrl. I really hope someone can help me with a workaround.
best,
Stephen
|
|
|
|
|
|
Tomasz, thanks, yes I can print out Turkish characters with DrawText or TextOut. I have no problem making a Turkish font and using it for any other purpose. The only context in which it doesn't work is when applied to a CListCtrl. Are you going to tell me how I can owner-draw the list? That's the only solution I can think of right now, but I don't know how to do it (it looks complicated). I tried overriding OnCustomDraw to set the font right, but even in OnCustomDraw, which gets called right before drawing, the charset of the font is correct (Turkish). So there's nothing I can do to change it there. The bug (I'm assuming it's a bug) must be right in the drawing code. Is there some way I can owner-draw just the text, but still let the CListCtrl take care of the icons, the highlighting, etc.? Please help! I'll be really grateful! Or do you have any better ideas?
best regards,
Stephen
|
|
|
|
|
So you create a Turkish font yourself, handle NM_CUSTOMDRAW during CDDS_ITEMPREPAINT, select your own Turkish font into provided device context, return CDRF_NEWFONT and still there's no expected output? If this is the case, it looks like bug. Owner-draw may be the only solution, but it's a real PITA.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
Yes, almost. Actually I just looked at what font was selected into the device context during CDDS_ITEMPREPAINT, and found that its charset was Turkish, so I didn't see any point in selecting a Turkish font again. Maybe I should give this a try, but I highly doubt it would work.
I haven't looked at owner-draw CListCtrls too carefully, but it looks like you have to draw the whole control? I'm thinking about using a CListBox instead with owner-draw items where at least you don't have the responsibility of drawing the whole thing. (Because list view is the only view I want to use.) But if I go down that road, I have to draw icons, and employ a header control, and so on. It's going to be a serious hassle in either case.
Can you think of any other possible workaround?
Thanks for your replies,
best,
Stephen
|
|
|
|
|
Hi, all!
========
I have an API console application.
How can I know when someone exited it by clicking on the 'x' button ?
(at the upper right corner, neer minimize & maximize buttons).
thanks
BTW: come to #CodeProject on DalNet (mIRC)
|
|
|
|
|
Use SetConsoleCtrlHandler to register a callback function that gets called when user presses Ctrl+C, Ctrl+Break, clicks on [x] etc.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
thanks
works great.
BTW: come to #CodeProject on DalNet (mIRC)
|
|
|
|
|
Hello,
I want to Know the Events that called, when i press the Close button from the Print Preview Button......
As if user presses both Print and Close button from the Print Preview window toolbar. the event that is called named
OnEndPrintPreview
and
OnEndPrinting
Actuallyu i want to differentiate both Events....
Thanks in Advance...
|
|
|
|
|
Hello All,
I am using the ATL OLE DB Consumer templates with the CDynamicAccessor on CCommand to access several databases. Access to table and commands are successful. With SQL Server there is no problem at all. However, with MS Access the column names are not order in the same way as the database. What am I doing wrong?
Best regards,
Paul.
Paul Selormey, Bsc (Elect Eng), MSc (Mobile Communication) is currently Windows open source developer in Japan, and open for programming contract anywhere!
|
|
|
|
|
How do you know that the order is not in the same way as in the db? Perhaps you could try using RowsetViewer to get the columns schema.
Cheers
Steen.
"To claim that computer games influence children is rediculous. If Pacman had influenced children born in the 80'ies we would see a lot of youngsters running around in dark rooms eating pills while listening to monotonous music"
|
|
|
|
|
Hello Steen,
Thanks for the response.
> How do you know that the order is not in the same way as in the
> db?
1. Even though I do not have Access installed, because of the testing I wish to achieve, I opened the data with Access on a different PC and could tell the column order.
2. Trying to read the values to fill the columns after the columns names does not work well-since there is no matching of types as obtained from the column information.
Any further help will be highly appreciated. Someone says it has to do with the bookmarks, any hint?
Best regards,
Paul.
Paul Selormey, Bsc (Elect Eng), MSc (Mobile Communication) is currently Windows open source developer in Japan, and open for programming contract anywhere!
|
|
|
|
|
Hi Paul,
I tested the CDynamicAccessor on a Jet database and it delivers the columns in the same order as Access shows them. However, the DBSCHEMA_COLUMNS rowset shown in RowsetViewer shows another order - so I'm confused. Unfortunately this doesn't really help you much. Can you make your program independent of the column order?
The CDynamicAccessor returns a column 0 which contains the bookmarks. This column is returned if you set DBPROP_BOOKMARKS to true. This means that your first data column has ordinal 1.
>2. Trying to read the values to fill the columns after the columns names
>does not work well-since there is no matching of types as obtained from the
>column information.
I'm not sure what you mean?
Cheers
Steen.
"To claim that computer games influence children is rediculous. If Pacman had influenced children born in the 80'ies we would see a lot of youngsters running around in dark rooms eating pills while listening to monotonous music"
|
|
|
|
|
Hello Steen,
Thanks so much for this great support. I am really hot now and this support is highly appreciated.
I do not know if this is a bug in the CDynamicAccessor or the Jet. Please can you make your test source available for me to learn from it? I may be doing something wrong-just confused that it works well with SQL Server.
I was initially working with the CManualAccessor and for reasons I cannot tell the binding to the Access columns fails. I gave up and started with the slower CDynamicAccessor and this is the result.
Please help with any piece of information-I have to complete this work by Monday to start another project.
Best regards,
Paul.
Paul Selormey, Bsc (Elect Eng), MSc (Mobile Communication) is currently Windows open source developer in Japan, and open for programming contract anywhere!
|
|
|
|
|
Just for the record, I have mailed you the project files and the database directly (more than 7 megs, not suitable for this forum
Cheers
Steen.
"To claim that computer games influence children is rediculous. If Pacman had influenced children born in the 80'ies we would see a lot of youngsters running around in dark rooms eating pills while listening to monotonous music"
|
|
|
|
|
I haven't been working with OLEDB Consumer Templates for some time, but I remember that problem you're experiencing may be related to the bookmark column.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
Hello Tomasz,
Thanks for the support. It is only a simple stage of opening and reading the data to list view. Not using bookmarks, any further hint?
Best regards,
Paul.
Paul Selormey, Bsc (Elect Eng), MSc (Mobile Communication) is currently Windows open source developer in Japan, and open for programming contract anywhere!
|
|
|
|
|
With Jet provider, you're getting bookmarks at position 0, as Steen pointed out. You don't have to ask for them, provider just gives you bookmark for free
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
Are you sure that the Jet provider gives you bookmarks no matter what? In the help it says you can set DBPROP_BOOKMARKS to VARIANT_FALSE, and I translated this into you not getting the bookmarks. I tried opening a table (i.e. through IOpenRowset, using CTable<cdynamicaccessor>) while setting DBPROP_BOOKMARKS to VARIANT_FALSE, but that gave med a DB_E_ERRORSOCCURRED with the status field set to DBPROPSTATUS_CONFLICTING - maybe I'll have to turn off DBPROP_CANFETCHBACKWARDS and DBPROP_CANSCROLLBACKWARDS? I don't want to put too much time into it if you're certain that Jet will always return the bookmark column.
Cheers
Steen.
"To claim that computer games influence children is rediculous. If Pacman had influenced children born in the 80'ies we would see a lot of youngsters running around in dark rooms eating pills while listening to monotonous music"
|
|
|
|
|