|
Thank you all for the help.
I did not exactly state the true situation, and that was causing me some problems. The project actually linked in another library (also ANSI C only), but the library was build with /MD and this caused multi-defined errors when I tried to use /MT for the base project. I did have the source of the library (fortunately) so I rebuilt it using /MT also, and then the base project compiled correctly. Tested the .EXE on this machine (without VS installed) and it works correctly.
Dave Augustine.
|
|
|
|
|
I have this dialog:
<br />
MYAPP DIALOG 10, 19, 158, 104<br />
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU<br />
...<br />
BEGIN<br />
...<br />
RADIOBUTTON "1&50%", IDD_Zoom150RB, 16, 10, 32, 10, WS_GROUP | WS_TABSTOP<br />
...<br />
RADIOBUTTON " ", IDD_ZoomSpinRB, 62, 38, 12, 10, WS_TABSTOP<br />
EDITTEXT IDD_ZoomSpinEF, 76, 36, 36, 14, WS_GROUP<br />
...<br />
END<br />
The contents within IDD_ZoomSpinEF editbox, needs to update the IDD_ZoomSpinRB label.
The editbox isn’t associated with the ratio button, thus when the ratio button is selected nothing is read.
How can I associate the editbox with the ratio button?
danginkgo
|
|
|
|
|
danginkgo wrote: How can I associate the editbox with the ratio button?
You can't "associate" them, and have it automatically work.
What you can do is write a EN_CHANGE handler for the edit box, then use SetDlgItemText (ZoomSpinRB, ...) to set the text for the radio button.
I'd be tempted to skip this step though - make the radio button text be blank, and just put the edit box where the radio text would have been. Then when they click on the custom option radio button, read the edit box and use that percentage for whatever you want it for.
Iain.
Plz sir... CPallini CPallini abuz drugz, plz plz help urgent.
|
|
|
|
|
Thank you! Your answer helped me much. I used EN_CHANGE notify and SetDlgItemText().
danginkgo
|
|
|
|
|
Hi there,
I working in VC 6.0, in which I need to polulate the datas in a grid. One of the field may contain values either text or a check box. So how can I implement a column which have only text in some rows and the some rows having check boxes.
Which control should I use, a Data Grid or a List Control?
thanks in advance.
regards,
Rajesh
|
|
|
|
|
Rajesh_Parameswaran wrote: Which control should I use, a Data Grid or a List Control?
It's really up to you, and dependent on your familiarity with each, other app specific details.
I'd also throw in a recomendation for GridCtrl (by our very own C Maunder), and the newer version posted a few months ago. They can take data from a variety of sources, and you can have cells with all sorts of type of data. Checkbox, text, number, colour pickers and (written by me!) progress bars.
Iain.
Plz sir... CPallini CPallini abuz drugz, plz plz help urgent.
|
|
|
|
|
Hey pal! Good to see you again after a while. Where were you?
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
I've been on a customer's site a lot recently, with internet access on borrowed PCs to check emails, and that's about it.
Rumours of my death have been exagerated.
Sadly, I've only come up for air for only a few days. Then back into hiding...
Iain.
Plz sir... CPallini CPallini abuz drugz, plz plz help urgent.
|
|
|
|
|
Hi There,
Thanks for your response.
One more question: I'm using a ListCtrl with the LVS_EX_CHECKBOXES option. Now I get the checkbox in the first column of the list control. Is it possible to move the check box to any other column in the list control?
thanks in advance.
regards,
Rajesh
|
|
|
|
|
Rajesh_Parameswaran wrote: Is it possible to move the check box to any other column in the list control?
Nope!
Doing a search for LVS_EX_CHECKBOXES, it pointed me at the ListView_GetCheckState "function". A search of the headers showed this a macro wrapper around LVM_GETITEMSTATE. Further investigation shows this affects a list item, not a sub item.
Maybe you could use owner draw, detect mouse clicks, and use hit test messages and write your own subclasses list control that has sub-checks, but I doubt it's worth the effort when you have other controls as I described in my last email.
Iain.
Plz sir... CPallini CPallini abuz drugz, plz plz help urgent.
|
|
|
|
|
I need to write the ASCII (230) in XML content section using MSXML 4.0.
Premise: XML incompatible with third party tool.
Under MSXML I am converting my string to BSTR (wide char), and it end’s up in the XML file back into the ASCII equivalent. Unfortunately it does not work for the accented characters when in the content section of an element. Instead that part of the string stays in wide-char in the xml file.
This is trouble since the XML file is passed to a third party utility that does not support this wide-char, nor the usual mapping like [& eaccent;] nor a XML header indicating UTF-8 or other.
For example:
I save the string:
<Test>Char é</Test>
It will actually be saved as:
<Test>Char Ç</Test>
Where 'Ç' is an example of some accented char (not necessarily 'é').
Note that you must open the XML in binary to see this. Notepad, Visual Studio or XmlPad all display the accented character fine (they detects the wide char, unlike my third party tool).
If I open the XML using a hex editor to replace the 2 characters by the ASCII # 230, the third party tool works fine.
So my question is: How can I force a char-230 (or other bad char) to actually be into the XML file using MSXML 4.0?
My code to create the XML node:
Example: CreateElementNode( myXmlDoc, "Node_Name", "Test é" );
BSTR AsciiToBSTR( LPCTSTR pszFText )
{
BSTR bsText = NULL;
WCHAR *wszURL = NULL;
int wSize = strlen( pszFText );
::MultiByteToWideChar( CP_ACP, 0, pszFText, -1, wszURL, wSize );
bsText = SysAllocString( wszURL );
free( wszURL );
return bsText;
}
MSXML2::IXMLDOMNodePtr CreateElementNode( MSXML2::IXMLDOMDocument2Ptr pXMLDoc, string sName, string sNamespaceURI )
{
MSXML2::IXMLDOMNodePtr node;
BSTR bsName = NULL;
bsName = AsciiToBSTR( sName );
BSTR bsNamespaceURI = NULL;
bsNamespaceURI = AsciiToBSTR( sNamespaceURI );
VARIANT vtype;
vtype.vt = VT_I4;
V_I4( &vtype ) = (int)MSXML2::NODE_ELEMENT;
node = pXMLDoc->createNode( vtype, bsName, bsNamespaceURI );
return node;
}
|
|
|
|
|
I am not trying to nitpick (honestly ) but there is no char 230 in ASCII. ASCII is a 7-bit encoding and covers only values 0-127.
What you are doing there is basically using the computer's system code page (CP_ACP) which is really a configurable thing, so it may work on your machine, but not on someone else's.
Anyway, Ç is just a UTF-8 representation of your accented character. UTF-8 is the default encoding for XML files. If the 3rd party tool does not recognize UTF-8, you'll need to explicitelly save your XML document in the encoding it will recognize. Also, you'll need to insert the "encoding" instruction accordingly.
|
|
|
|
|
“you'll need to explicitelly save your XML document in the encoding it will recognize”
That’s what I am trying to do, here is an example in binary: (the HEX values are almost random, not sure if they map to an actual accented char).
I have the string: “54, 65, 73, 74, 3a”
The BSTR becomes: “54, 00, 65, 00, 73, 00, 74, 00, 3a, 00”
The XML file opened in Binary is: “54, 65, 73, 74, 00, 3a, 00”
So a mix of ASCII and Wide Char (???). If I replace (manually) “74, 00, 3a, 00” by “74, 3a” then all is fine.
Certainly their must be a way to force the “extended” chars to be re-mapped like all other chars? Is that what you mean by “you'll need to insert the "encoding" instruction accordingly”? But how can I do this thru MSXML?
|
|
|
|
|
You really just need to add the processing instruction to specify the correct encoding, and MSXML will save it correctly.
For the details on how to do it, take a look at this MSDN article[^]
|
|
|
|
|
I already tried to no avail. The solution indicated is to add a header like
but the third party tool does not support this. If the line is present the tool craps on me.
=> Saving the character "E9" (é) it becomes "E9 00" in BSTR (no problem) but MSXML writes "C3 A9" in the actual XML file.
Why is it doing this at all?
Then if I edit the XML to replace "C3 A9" for "E9" everything works!
How can I force MSXML to write "E9" (what I pass to it) instead of translating my "E9" into "C3 A9"?
|
|
|
|
|
So if I understand you correctly - if you add the processing instruction encoding='ISO-8859-1' , MSXML outputs just E9 and not C3 A9, but the third party tool crashes? If that is the case, it is really the problem with the tool - MSXML's output is good.
Having said that, if you want to get output encoded as windows cp1252 or ISO-8859-1 (still not sure what you mean by 'extended ascii' - there are numerous encodings that extend ascii) without the processing instruction, one way I can think of is to write your XML document to a temp UTF-8 file and then convert that file from UTF-8 to Windows CP 1252 (or whatever encoding you really want) in a separate step. Just remember - this will actually be an invalid XML file (because it lacks the processing instruction), but this tool may be happy with it.
|
|
|
|
|
A reply to myself for does not followingthe secondary thread:
=> Saving the character "E9" (é) it becomes "E9 00" in BSTR (no problem) but MSXML writes "C3 A9" in the actual XML file.
Why is it doing this at all?
Then if I edit the XML to replace "C3 A9" for "E9" everything works!
How can I force MSXML to write "E9" (what I pass to it) instead of translating my "E9" into "C3 A9"?
|
|
|
|
|
OK, so now I know that C3 A9 is the UTF-8 for my extended ascii. What I need to know is how to force MSXML to write extended ASCII, without writing the at the start of the page (if present the external tool crashes).
|
|
|
|
|
Dear all,
How can I be notified of date changes in vc? my program wants to know whether the clock is passed 00:00 or not. It should create a folder for each new day while it's running.
|
|
|
|
|
Can you explain what you want to do and which folder you want to create.
If you want to create folder with date e.g Folder_MM_DD_YY
Then why you need date change notification.
Everytime you need to create/access the folder you can take system date check if folder exists fro that date and create if it doesnt exist.
I hope you are getting my point.
Regards,
Sandip.
modified on Wednesday, June 25, 2008 9:55 AM
|
|
|
|
|
Ali Tavakol wrote: How can I be notified of date changes in vc?
You can't that I know of. What you could do is call SetTimer() with a one-minute resolution. Each time the timer procedure is called, check the current time.
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Hi,
Well, what I've once done in a situation like that goes at follows:-
At Startup, read the time and calculate the timespan untill 00:00:00 Next.
{time_t Now=time(NULL); long Delay=86400-(Now-(Now/86400)*86400));}
Then Set a timer for this Delay(*1000) (timers work in mS!).
When the Timer Fires, first set a New one for 86400 Seconds. Then do the bits you need to do, and kill the old timer.
Depending on your needs, there are thousands of methods to skin this particular cat. The problem branches various ways, depending on what you want to do retrospectively with days where the system was not running for several days, and also what must happen if the user changes the Clock or Timezone, What about DST. None of that is difficult to resolve, provided one is aware of these 'imponderable' actions.
Hope this is helpfull,
Regards
Bram van Kampen
|
|
|
|
|
Hello,
I have develpoed an application on windows 2003sp1 which has to do with font. I have drawn text and set the font size as 36 and I have opend the same application in windos vita using cleartype enabled I could see the size of the font has reduced to 1 that is the font size has become 35.This is because in windows vista does font smoothing when cleartype is enabled due to which the font size reduces.
Here is the code
SystemParametersInfo(SPI_GETFONTSMOOTHING, 0, &IsEnabled, 0);
templfQuality = td->lf.lfQuality;
if( IsEnabled && templfQuality != NONANTIALIASED_QUALITY ) {
td->lf.lfQuality = NONANTIALIASED_QUALITY;
}
I am checking this way but its not working properly
Regards
|
|
|
|
|
I want to get user input when a user clicks a item in list control. Is there any easier or better way to achieve this than to use an edit box, display it where user has clicked, then read the data from edit box and display it into list control?
Thanks.
the fruits of your success will be in direct ratio to the honesty and sincerity of your own efforts in keeping your own records, doing your own thinking and, reaching your own conclusions.
..surviving in autumn..in love with spring..
|
|
|
|
|
I don't quite get your requirement. Can you explain?
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|