|
Hello,
I need to open / save a txt file into a RichEditView at runtime without using the File -> Open / Save menu selections. ie. no user intervention.
I'd like to use the Stream functions of the RichEditView, but I can't figure out how to call the function. Looking at the code in ViewRich.cpp I can see how its supposed to work, but it always fails.
Can anyone give me any ideas? I'm not necessarily looking for the code, but rather some direction so that I can figure it out myself.
I've already got the filename, stored in a CFile. And, a pointer to a CArchive object. I have called:
Stream(arLoad, FALSE);
However, the function needs to know what the value of IsStoring() is. How do I set that?
I've looked at the WordPad sample...it uses custom streamin / streamout functions.
Thanks for any ideas you can give me!
Frank
|
|
|
|
|
Don't use stream(). Use CRichEditDoc::OnFileSave("C:/yada.txt").
|
|
|
|
|
Thanks Baafie...I actually got it to work using streamin. I found an example on MSDN:
static DWORD CALLBACK MyStreamInCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
CFile* pFile = (CFile*) dwCookie;
*pcb = pFile->Read(pbBuff, cb);
return 0;
}
void SomeFunctionThatLoadsAStringFromSomeFileOrSomethingLikeThat()
{
EDITSTREAM es;
es.dwCookie = (DWORD) &myFile;
es.pfnCallback = MyStreamInCallback;
GetRichEditCtrl().StreamIn(SF_TEXT, es);
}
Thanks!
Frank
|
|
|
|
|
You're welcome, but it doesn't look like my advice helped you out..
|
|
|
|
|
The reason I was looking to use Stream (In) is due to the fact that I am writing temp files outside the scope of my doc class.
My app writes out temp data to a file for processing first...after processing it loads it back into the view for user intervention. From there a file save or print or print preview can be performed.
I tried using a loop and loading the file 1 line at a time but it looked rather FREAKY.
MSDN had the example that worked (I love that)...unfortunately for me my subscription ran out in october and I cant afford another one.
Frank
"Gumbercules? - I love that Guy!"
- Dr. Zoidberg
|
|
|
|
|
i write an application and add five class(Recordset) in program but i am change or delete this class.
how to?
thanks for your help
ali
|
|
|
|
|
You go to the file view, highlight and press delete. Then, if you want, go into My Computer, navigate to the file location, hold down shift, press delete and click OK.
Christian
#include "std_disclaimer.h"
The careful application of terror is also a form of communication.
Eagles may soar, but weasels don't get sucked into jet engines.
|
|
|
|
|
You also want to remove the files from the FileView tab.
|
|
|
|
|
You go to the file view, highlight and press delete.
You mean like that ??
Christian
#include "std_disclaimer.h"
The careful application of terror is also a form of communication.
Eagles may soar, but weasels don't get sucked into jet engines.
|
|
|
|
|
Read your message too fast and didn't see that you had already mentioned doing that
|
|
|
|
|
Do the Following .
1. Remove the .CPP File From the File View
2. Remove the .H File too.
3.Close the Project.
3.Delete the Files From Your Project Directory( Or Rename it)
4.Remove the .CLW File.
5.Open the Project
Ullas
|
|
|
|
|
i want use progress in a program in visual c++ but i dont know that use it.
thanks for your help
ali
|
|
|
|
|
Create your progress bar, give it a range meaningful to you ( i.e. 0-937 if you're reading in 937 records ) and as you perform your process, pass updated values to the progress bar for display.
Christian
#include "std_disclaimer.h"
The careful application of terror is also a form of communication.
Eagles may soar, but weasels don't get sucked into jet engines.
|
|
|
|
|
Hi,
I'm trying to create an application similar to Mr. DiLascias' Virgil
application http://www.microsoft.com/msj/defaultframe.asp?page=/msj/0397/c++/c++0397.htm&nav=/msj/0397/newnav.htm My application has one large difference, I've derived my view from a Dundas class called CScrollWnd which allows zooming of the image. The Dundas class loads the original bitmap and draws it out to the screen. When the user zooms the image, they use a CWindowDC to change the orientation of the image (zoom in/out). This is where I'm having a lot of trouble, when the original image is zoomed, I need to somehow change the orientation of the masked image. Since the Dundas class is already changing the orientation for me, I was wondering if I could just make the same changes to my masked image that the class is doing to the original image and then just update the masked image that's in memory. Is there a way to change a CBitmap the way that a CWindowDC is changed?
I hope I'm explaining this correctly, if not please don't hesitate to ask and I will try to explain it better. I'm new to dealing with this kind of programming and would appreciate any help you can provide.
Here is some sample code that I'm using in my application to try and find out where on the image they are pointing but as you can see, the mask image is loaded but it is always loaded at it's actual size and not what the actual zoomed image is set to.
void CMyImageViewer::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CDC dc;
dc.CreateCompatibleDC(NULL);
CSize sizeDIBMask = m_dibMask.GetSize();
CRect rectMask(0, 0, sizeDIBMask.cx, sizeDIBMask.cy);
CRect rectPaintMask = rectMask;
NormalToScaled(&rectPaintMask);
UINT diffMask = rectMask.bottom - rectMask.top;
rectMask.bottom = sizeDIBMask.cy - rectMask.top;
rectMask.top = rectMask.bottom - diffMask;
CRkFicheView *wnd = (CRkFicheView*)m_splitterWnd.GetPane(0, 1);
CRkImageViewer *pImageViewer = wnd->GetImageViewer();
CDib *pMask = pImageViewer->GetMaskDib();
CBitmap *pOldBm = dc.SelectObject((CDib*)&m_dibMask);
COLORREF color = dc.GetPixel(point);
dc.SelectObject(pOldBm);
TRACE("RGB(%d,%d) = (%d,%d,%d) \n", point.x,
point.y, GetRValue(color), GetGValue(color), GetBValue(color));
if(color != RGB(255, 255, 255)) //white = nothing
{
AfxMessageBox("Color other than white found.");
}
COXScrollWnd::OnMouseMove(nFlags, point);
}
Thanks,
Craig
|
|
|
|
|
If you don't need a scaled version of the mask bitmap for other purposes, what about reversing the problem?
That is, if you know which transformation is applied to the bitmap, you apply the inverse tranformation to the point and obtain a valid point in the mask bitmap.
Paolo
------
"airplane is cool, but space shuttle is even better" (J. Kaczorowski)
|
|
|
|
|
Paolo,
Thanks so much for the great idea, I didn't even consider this, I guess I've been to focused on trying to solve the other zooming problem.
I was wondering if you could give a little more clarity to your suggestion. For example, in using your idea, would I have to keep track of all transformations (i.e. if they zoom in multiple times and then scroll around?) Also, the Dundas class uses things like Get/SetViewportEx, how would I go about transforming a point to try and line them up?
Thanks again for your suggestion and any other information you can provide,
Craig
|
|
|
|
|
I'm not 100% sure, but looking at CScrollWnd source you should be able to reverse the tranformation.
I suppose that if you get the window's DC and use GetViewportExt, GetViewportOrg you can get the current zoom factor and view offset.
But it could be easier... if the DC you get has still the same mapping mode as when it's used to draw the bitmap, then you can simply use LPtoDP() function.
All you have to do is trying
Paolo
------
"airplane is cool, but space shuttle is even better" (J. Kaczorowski)
|
|
|
|
|
Paolo,
Thanks again for your help, I will begin trying to see what I can find out.
Thanks again,
Craig
|
|
|
|
|
I want to do something similar to what MSN Messenger does(adds the online contacts to the Contacts list and provides special icons depending on what their status is)...
How do I do this?
There has got to be a "simple" answer for this, I just can't figure it out
Thanks in advance!
--=--
Jason Whelan
|
|
|
|
|
Hi,
I want to find all records that CODE field is 120, in Crystal Report 8.0
So, i made a new report and i choosed all fields that i need ...
Then in my project, i wrote:
m_Crystal.SetSQLQuery("SELECT * FROM PERSON WHERE [CODE] = 120");
But this code won't work !!!
What is my wrong ?
My month article: Game programming by DirectX by Lan Mader.
Please visit in: www.geocities.com/hadi_rezaie/index.html
Hadi Rezaie
|
|
|
|
|
click
crystal report... file>report option>perform query asynchronously
and save report now you call rpt file with activity by sql query
ali_nemati@hotmail.com
ali nemati
|
|
|
|
|
Here's an easy one that's been bugging me:
I've got some edit controls in a dialog, and I checked the multiline box, and I'm hoping that when the user types past the end of a line, it will wrap around, much as it is doing while I type at this precise moment;) Anyway, even if there are some dwStyle flags I could use, how can I set those since Create is never called for dialog controls?
thanks,
Jake
|
|
|
|
|
You can change control styles in OnInitDialog() - the controls are all created at that point, just not visible yet.
--Mike--
http://home.inreach.com/mdunn/
"Make sure that if you are using a blow torch that you don't set anything on fire."
-- Chris Maunder
|
|
|
|
|
Right, but how do I change the control styles? CEditCtrl didn't seem to have a SetStyle function, but if it did I would try to add the ES_WANTRETURN style? A little more specific please?
thanks,
Jake
|
|
|
|
|
Set "Multiline", but remove "Auto HScroll".
If you want to change style bits at runtime, add a CEdit variable associated with the edit control to your dialog class, and use ModifyStyle() function.
Paolo
------
"airplane is cool, but space shuttle is even better" (J. Kaczorowski)
|
|
|
|