|
Hi. please help
I have associated one pane of a view created by CSplitterWnd to a CFormView derived class in OnCreateClient, now I want to switch between different CFormView classes at runtime. what is the safe way to do that? should I do that from CDocument class or... thank you
|
|
|
|
|
I know Paul Dilascia wrote an article on replacing views many years ago on MSJ[^].
You should also be able to do a search on codeproject for "replacing view" or such.
Iain.
|
|
|
|
|
How about this (fragments of my code):
<br />
CMainFrame *pMainFrame=(CMainFrame*)AfxGetMainWnd();<br />
(pMainFrame->m_wndSplitter).ReplaceView(RUNTIME_CLASS( CRightView ), CSize(100,100)); <br />
(pMainFrame->m_wndSplitter).ReplaceView(RUNTIME_CLASS( CColorRight ), CSize(100,100)); <br />
<br />
Hope, this will help you, bilas.:->
|
|
|
|
|
It won't help *me* much, or anyone using MFC4.2 (comes with VC++ 6).
I've just looked at the docs, and also the relevant header file, and
ReplaceView is not a member of CSplitterWnd. It might be under later
versions though. Behind the times, I am.
If that actually is cut and paste from your code, rather than from
memory, I'm surprised there's no paramater for *which* splitter view
to change. Or did you have your own splitter pane which only changes
(eg.) the pane on the right?
Being picky, I would recommend he handles this in his CChildFrame (MDI)
or CMainFrame (SDI), so the casting wouldn't be necessary. But I
was lazy!
But doing the search I recommended comes up with an article on how
to do exactly what I think Anonymous wants.
|
|
|
|
|
I want to make a program that can connect to internet and use up to date information without having to manually enter that information. How do I retrieve information such as a text in a table cell from the IE browser? Can I do that without programmatically openning the browser and/or downloading the whole page?
|
|
|
|
|
What you're asking for is not that simple.
I don't know how you would be able to retrieve information from the IE browser, but if you added a web browser component to a MFC dialog you might be able to get some information that way.
Retrieving the text from a table cell is impossible without downloading the whole page. This is a restriction of HTML and HTTP.
As for your other question "without opening the browser", yes you can download information from the net without opening a web browser but it would still have to act like a web browser. I can't remember the name at the moment but it is possible to use an API to download a website.
Greba,
My lack of content on my home page should be entertaining.
|
|
|
|
|
|
It will little easy if you know little bit of ATL.
#1 you have two option either Use URLDownloadToFile Function to download the file(html,asp etc) or you can use raw WinInet api to get content of that page(you will find a wrapper class for that Here[^])
#2 now after getting the file, load that file in IHTMLDocument2 and parse the file as required by you.
"I Think this Will Help"
[Vote One Here,.....]
<h5
alok gupta="" <br=""> visit me at http://www.thisisalok.tk
|
|
|
|
|
Thanks guys.
|
|
|
|
|
i want to open a vrml file extract certain text so i can format it. i am trying to remove a picture from a vrml gallery and also i want to change the size of the frame around the picture. the following code changes the size of a picture point [
-0.990099 1.30848 -1.44685,
-0.990099 1.30848 -1.47599,
-0.990099 -1.30848 -1.44685,
-0.990099 -1.30848 -1.47599,
-3.19778 1.30848 -1.44685,
-3.19778 1.30848 -1.47599,
-3.19778 -1.30848 -1.44685,
-3.19778 -1.30848 -1.47599
]
i need to be able extract this code for all the different pictures and also is there a way i could put the values above in to edit boxes, so a user can change them
|
|
|
|
|
I'm having some strange issues with ReadFile. When I try to read into my buffer using sizeof(myStruct), which returns 48, it fails and GetLastError returns code 57. When I try the same section of code and use 1024 for the number of bytes to read, it is successful. I don't change the buffer pointer or any other parameters, but for some reason when I tell it to read 1024 bytes it succeeds, when I tell it to read 48 bytes, it fails. On a side note, I'm reading directly from the file "\\\\.\\C:", I don't know if this is the issue or not, but I doubt it because I am reading other structures before it just fine. Does anyone know what this could possibly be?
-- Rocky Dean Pulley
|
|
|
|
|
Error 57 means that a network adapter hardware error occurred. Without seeing a code snippet, it would be hard to offer any sort of solution.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Ok, I made it into a simpler test, and now it returns code 87 on the bad one:
void readFile(int size)
{
DWORD dwBytes = 0;
HANDLE h = CreateFile("\\\\.\\C:", GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE,
0, OPEN_EXISTING, 0, NULL);
if (h == INVALID_HANDLE_VALUE)
{
cout << "FAILED TO OPEN" << endl;
return;
}
char *buff = new char[size];
if (!ReadFile(h, buff, size, &dwBytes,NULL))
{
cout << "Failed to read file: " << GetLastError() << endl;
}
else
{
cout << "Success" << endl;
}
delete []buff;
CloseHandle(h);
}
int main()
{
readFile(48);
readFile(1024);
return 0;
}
the first call returns "failed to read file: 87".
the second call returns "success".
Does this have something to do with the inode size? Does ReadFile require this or maybe the fact that I'm accessing the NTFS directly.
-- Rocky Dean Pulley
|
|
|
|
|
Just for clarification, you are reading from a drive rather than an actual file. Given that, I would guess that 48 bytes is not a sector-aligned value, which I think is a requirement of the buffer. Try 512 and see what happens.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Yea it works when I do it with sector aligned values, I didn't know that you needed to do this to directly access the drive. I guess I will just have to read into buffers then copy to my structures. Thanks.
-- Rocky Dean Pulley
|
|
|
|
|
i think yr application is not anble to find the EOF character
the size of file might be greater . The buffer is allocated memory at run time only, when buffer is assigned some value and if the memory size increases it throws run time exception. This is not is case of static allocation As the memory is predefined.
Rahul Agarwal
|
|
|
|
|
Hi All,
I m building as application in VC++.It requires to read file names with a specific extension from a directory.
Can anyone tell me about any such function or method to perform this.I have tried other sources also but not found some usful stuff.
thanks
|
|
|
|
|
Look in MSDN for WIN32_FIND_DATA, FindFirstFile, FindNextFile, FindClose.
-- Rocky Dean Pulley
|
|
|
|
|
thanks for ur help now I able to do this using WIN32_FIND_DATA, FindFirstFile, FindNextFile, FindClose
|
|
|
|
|
|
Use the FindFirstFile() /FindNextFile() pair, or the CFileFind class.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
My text on-screen and printed looks fine, but if I save a metafile picture and import it into Microsoft Word, then Word will scale the picture. So my 10 point fonts become 5 point (say). When printed from MSWord, the picture has text with poor horizontal spacing between individual characters. This seems to be particularly noticeable with bold fonts.
Sometimes I'm using CDC:DrawText and sometimes CDC:ExtTextOut. Both cases have this problem.
What issues am I unaware of? What steps (if any) can I take to avoid this?
many thanks
Steve
|
|
|
|
|
I do beleive this is in fact an issue with Word. It re-interprets the metafile the first time its loaded in and gets it wrong.
I have found in the past if you then try and edit the metafile in word and actually change nothing, it will then get the fonts correct.
If you vote me down, my score will only get lower
|
|
|
|
|
hotdog!... you're right!
now that's made me pause for thought.
The downside (apart from needing this edit-picture operation) is that the picture gets converted into a zillion independently-selectable elements, so you can no longer apply an overall scale to the picture after editing, though maybe I could group all elements, and then scale (I really need to learn how to use Word's picture editing features<g>).
Curiously, an older version of our software (using different mapping + text output) and using WMFs rather than EMFs doesn't have this problem.
Still, many thanks for the pointer - at least I now have a tolerable workaround to the issue.
|
|
|
|
|
I'm having some difficulties with creating a dialog from resource.
When using the default proc, the app breaks on stack overflow
ret=DialogBox(hInstance,MAKEINTRESOURCE(IDD_PREFERENCES),hWnd,(DLGPROC)DefDlgProc);
When using a custom proc, the function returns -1, and last error returns "The specified resource type cannot be found in the image file."
ret=DialogBox(hInstance,MAKEINTRESOURCE(IDD_PREFERENCES),hWnd,(DLGPROC)TestProc);
hInstance and hWnd are both valid. And I do have a dialog with id=IDD_PREFERENCES in my resource. Dunno what's going on...
Somebody?
using: [VISUAL STUDIO .NET] [WINXP PRO SP2]
|
|
|
|