|
perfect cheers....
well hidden little fecker
|
|
|
|
|
Dear all !
I have problems with Unicode String , please help me !
When I code as :
OPENFILENAME ofn;
ofn.lpstrFilter = L"Project Files (*.mpr)\0*.mpr\0";
......
GetOpenFileName(&ofn);
......
There is no problem.
But when I code as :
CString s = L"Project Files (*.mpr)\0*.mpr\0";
// At this moment, the Debugger
// show s as "Project Files (*.mpr)",
// not as "Project Files (*.mpr)\0*.mpr\0"
ofn.lpstrFilter = s.GetBuffer(255);
......
GetOpenFileName(&ofn);
......
Then, file dialog is showed but the combobox FileOfType not correct !
I must assign a CString variable (CString s) because I want to convert it from English to Japanese before, then I assign it to ofn.lpstrFilter !
Please help me how to control a string which contain special character such as '\0' (This means that special characters are processed like as normal characters).
Thank a lot.
Nguyen
nguyen_nd
|
|
|
|
|
Have you defined _UNICODE in ur project settings if no, then try GetOpenFileNameW(....)
"When death smiles at you, only thing you can do is smile back at it" - Russel Crowe (Gladiator)
|
|
|
|
|
CString can't handle embedded null's.
You'll have to use a different method, maybe just a static WCHAR array. Also I seem to rememeber someone here wrote an article about how they modified CString to work with embedded null's (and were widely criticised for it ), you could check that out.
|
|
|
|
|
The OPENFILENAME.lpstrFilter must be terminated by two null-chars. If you assign to CString a string constant which contains nulls, all characters after the first null-char are ignored. Thus the filter string in s is terminated by only one null-char.
You should append manually the remaining null-char to OPENFILENAME.lpstrFilter .
Robert-Antonio
"Science is a differerntial equation.
Religion is a boundary condition."
|
|
|
|
|
Thank everybody, I have fixed my problem !
I have re-written that code as :
// Now, szFileType = L"Text file *.txt|*.txt|"
CString openFileDialog(CString& szFileType, int language)
{
OPENFILENAME ofn;
//initialize for ofn
......
convertText(szFileType, ENGLISH, language);
int i = szFileType.GetLength()-1;
while(i>=0)
{
if (szFileType.GetAt(i)=='|')
{
szFileType.SetAt(i, '\0');
}
i--;
}
ofn.lpstrFilter = szFileType;
....
GetOpenFileName(&ofn);
return ....
}
It works very good, thank everybody very much !
D.Nguyen
nguyen_nd
|
|
|
|
|
Is your project build under _UNICODE.
"When death smiles at you, only thing you can do is smile back at it" - Russel Crowe (Gladiator)
|
|
|
|
|
My project is building under _UNICODE. But I sure that my problem still occurs as soon as I don't build under _UNICODE.
nguyen_nd
|
|
|
|
|
Hello, I'm getting closer to what I need guys. I've managed to find the names of the windows I want to click on but I need to know how to get the X and the Y cooridinates of the windows of the game (they are child windows) so I can have the mouse moved there so it can click on the correct part of the windows to continue the game (I'm creating a macro) Any help is welcomed
|
|
|
|
|
If you have the ID of the control you can do this:
CRect rect;
GetDlgItem(ID_OF_CONTROL)->GetWindowRect(&ect);
This returns the location of the window in screen coordinates. If you need them in client coordinates, you just do a call to:
ScreenToClient(&rect);
Roger Allen - Sonork 100.10016
Roger Wright: Remember to buckle up, please, and encourage your friends to do the same. It's not just about saving your life, but saving the quality of life for those you may leave behind...
|
|
|
|
|
I guess I don't understand what you mean by Id of the control. This is what I've got. With a window Spy proggie I've picked up I've found out the main window for the program is this :
The Class name is RealmGame3, that never changes. The Child windows however has class names like : Afx:400000 :1000f. So at this point I'm really confused as to what I'm supposed to do. heh. any help would be great.
Thanks Dimar
|
|
|
|
|
Hi:
I make a programme based on IWebBrowser2(or chtmlview).In MSDN, it says that: this function "Retrieves the handle of the Microsoft® Internet Explorer main window.".but I want to overwrite this function to let it return my main window(otherwise in my programme ,it always return NULL).how could I do?
Thanks.
Benben
|
|
|
|
|
I'm writing a CAD program, which will have a lot of commands like create various types of entities, move, scale and rotate entities, knot edit, etc. And the drawing file may probably grow to a large size.
In general, there are two approaches to implement undo and redo, the first is Command Pattern, and the second is CheckPoint method.
CheckPoint method saves the WHOLE file into memory every times when there's document changing. The advantage of it is command independent, but this will be unendurable when the file grows very large.
Command pattern consumes less memory, but it requires almost every command implementing inverse operation, it will be a heavy burden. And in some cases, inverse operation is hard to do.
Is there any other method that implement undo/redo, for example, using checkpoint, but only saving the changing part of the drawing?
|
|
|
|
|
I am thinking the Command pattern is the way to go. If an operation is difficult to make an inverse operation the program can reload the commands from the beginning. In this method the data file will be the list of commands the user did in the GUI. Backing up is as simple as erasing a command from this list then reloading the entire list.
John
|
|
|
|
|
I am trying to set the default folder view the explorer uses for ALL USERS on a machine to details view.
I would prefer to do this programmatically, but anything would help.
Thank you for your time,
XP
|
|
|
|
|
How can I use a Dll to link 2 different Static Lib in Visual C++ 6.0? Pls reply asap. thanx.
braderbear
|
|
|
|
|
How can I register a Win32 DLL in regisret so that it can be accessible to a VB client?
|
|
|
|
|
regsvr32 dllname
this command will register the dll in the registry...
This is done for COM inproc dll. I guess you dont have to register a win32 dll to be accessed by vb client.
The dll should be in the path or in the same folder where the vb binary lies.
Besides it is same as using "user32.dll" of windows.
"When death smiles at you, only thing you can do is smile back at it" - Russel Crowe (Gladiator)
|
|
|
|
|
If I register using regsvr32 it gives error the it cannot "Find DllEntryPoint"
|
|
|
|
|
That means that its not a com dll, so no point in registring it,
I dont know how to do it in VB but i guess you will find plenty of examples how to use win32 dll in vb.
"When death smiles at you, only thing you can do is smile back at it" - Russel Crowe (Gladiator)
|
|
|
|
|
For VB6 there's an add-in which lets you generate definitions and stuff to allow direct use of the Win32 API when appropriate.
Essentially, you have a code module within which the DLL exported entry points are declared, along with their parameters. You can also alias the entry points, to give them friendly names, then use them like regular VB sub/functions.
Steve S
(Me, write in VB? - No, you must be confusing me with someone else...)
|
|
|
|
|
Write the dll as a com component and do what the other person said.
John
|
|
|
|
|
John M. Drescher wrote:
what the other person said
The other person??
"When death smiles at you, only thing you can do is smile back at it" - Russel Crowe (Gladiator)
|
|
|
|
|
You, Sorry I was in a hurry and did not copy your name...
John
|
|
|
|
|
Hi,
im currently working on a MDI project. it concerns displaying waveforms, with data read from a text file.
iv added the zoom in and zoom out feature in the UI, but im having trouble in having the display updated within the same window.once a user clicks on the zoom in/out button, he needs to click on the "new" icon to have the zoomed picture displayed.im aware that the OnFileNew() is within the CWinApp class, therefore i cant call it from my CView class.
can someone please tell me how to call the OnFileNew() function from within the CView class? or am i suppose to do it another way?
thanks alot..
|
|
|
|