|
First of all, it can be done. I have done this - switching between 'normal' view and two splittered views. Unfortunately, I'm not allowed to post code snippets from this app - business, you know
Splitter creation will be identical. You'll be just doing this not in OnCreateClient but later.
Good starting point in learning how to switching view at runtime would be C++ QA column by Paul DiLascia published Feb'96 issue of MSJ. The article may be included in MSDN on your hard disk. If it's not there, go to msdn.microsoft.com
This article doesn't deal with splitters - however, it very clearly shows how to switch views. You should just go one step at the time and surely you'll be OK.
Tomasz Sowinski -- http://www.shooltz.com ** If you're going to rape, pillage and burn, be sure to do things in that order. **
|
|
|
|
|
I've got a window now which pops up and puts the forms in them, now the question is how do i send data between the two different views since the views were created by using RUNTIME_CLASS(CFormView)... any suggestions?
-dz
|
|
|
|
|
Override OnUpdate function in the views. Use command routing. After command routing is implemented, pass some unique parameter to the document UpdateAllViews function, which you will use in the OnUpdate function.
Hope this helps,
Deian
|
|
|
|
|
Hi!
I´m trying to create a simple ftp client but I´m having problems creating an instance of the CInternetSession class.
I´ve downloaded an example ftp client that works but I just can´t get my own to work.
Do I have to link the CInternetSession class in a certain way?
I´m using VC++ 6 SP5.
/Jii
|
|
|
|
|
Here is some code i wrote:
void CTransmitView::TransmitReports(CString ftpserver, CString user, CString pass)
{
CInternetSession mySession;
CFtpConnection* pFtpConn = mySession.GetFtpConnection(ftpserver, user, pass);
if (pFtpConn)
{
pFtpConn->SetCurrentDirectory("\\uploads\\");
pFtpConn->PutFile("test.txt", "test.txt");
pFtpConn->Close();
}
----
there is no exception handling in there.. you should add some for CInternetException and some other stuff prolly..
-dz
|
|
|
|
|
You are using a Direct Connection or a Proxy?
You are trying to connect using any Port?
Show any of your code...
Best Regards....
Carlos Antollini.
Sonork ID 100.10529 cantollini
|
|
|
|
|
I'm looking to create a modeless dialog in a dialog based mfc application.
This has to be done by the main dialog on a signal received from a working thread.
I've tried sending an user message and by directly calling a method of the main dialog class; the result was runtime error on release configuration, so i need a better way to communicate between the worker and the main dialog.
I'm waiting for a clue.
rechi
|
|
|
|
|
Could you post some code to see how you've implemented the thing? In principle, sending a message from a worker thread to a dialog to perform some UI operation is OK, so I guess there's hope your approach will work
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
There is nothing special in the code; in fact is really classical:
(in the thread)
((CDialog *)GetOutput())->SendMessage(WM_VIRTUAL_WANTCHAT);
(in the dialog message map)
ON_MESSAGE(WM_VIRTUAL_WANTCHAT, OnVirtualWantChat)
(the method)
void CClientxDlg::OnVirtualWantChat()
{
CChatDlg *dlg=new CChatDlg();
dlg->Create(IDD_DIALOG_CHAT, this);
if (dlg)
dlg->ShowWindow(SW_SHOW);
}
rechi
|
|
|
|
|
- What does
GetOutput exactly do?
- Is the
CClientxDlg blocked in any way as in your previous questions from yesterday?
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
GetOutput returns the pointer to the main dialog window object (CClientxDlg *) and the window is - 100% sure - not blocked.
The facts are: i read a group chat request from a socket in the worker and i have to order the main dialog to create the chatting modeless dialog.
I also have to say that i'm not sure of the problem's origin so, if you find out that it's not this one, i should not be surprised.
rechi
|
|
|
|
|
I've created a test application with a worker that sends commands (WM_USER+1) once in 3 seconds for the main to create modelesses.
It works the first time and fails the second.
Despite this, it's perfect on debuggin' configuration.
So, this remains the problem!
rechi
|
|
|
|
|
Ummm... I think your user-message handler does not have the right signature. Try declaring (and defining) it like this:
afx_msg LRESULT OnVirtualWantChat(WPARAM wParam, LPARAM lParam); And don't forget to tell us back the result Good luck.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Now it runs perfectly!
Thanks a lot!
|
|
|
|
|
// In the following code :
m_app.CreateDispatch("Word.Application")
oDocs = m_app.GetDocuments();
oDoc = oDocs.Add(vOpt, vOpt, vOpt, vOpt);
(...)m_app.Activate();
oDoc.Activate();
// Can i obtain a reference or handle on a picture object in
// my MS Word, by using oDoc ?
Thanks.
|
|
|
|
|
how to implement remote shutdown in Windows NT ??
|
|
|
|
|
There's a utility to do this in the Windows NT resource kit.
Sorry to dissapoint you all with my lack of a witty or poignant signature.
|
|
|
|
|
There's a program called shutdown.exe for doing this, available in the Windows NT resource kit.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Or you can use InitiateSystemShutdown/InitiateSystemShutdownEx.
|
|
|
|
|
Yes, this one works pretty nicely.
Andres Manggini.
Buenos Aires - Argentina.
|
|
|
|
|
Please excuse if this has been asked before,
but i have a handler for when the user clicks on a menu item,
this is the code that i have:
void CTestApp::OnTestMenu()
{
CWnd* pWind;
pWind = theApp.GetMainWnd();
CClientDC dc(pWind);
dc.TextOut(200,200, "Hello World");
}
This works fine, but it doesn't repaint the screen if it gets covered.
I guess what my question is, do i need to create a Global Device Context that i write to from different parts of my app and then paint this to the screen in my OnDraw() ?
Thanks
|
|
|
|
|
In Windows you need to implement your drawing code in handler of WM_PAINT message. In MFC this will be OnDraw if you're CView-derived class or OnPaint otherwise.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
Hi,
I have a DLL, that I called from a different proccess space ( I run it in an automated instance of word, and I get control to it from my application).
I pass an LPUNKNOWN pointer to pass one stream with one metafile, the problem comes when I try the DLL in a computer where I haven´t build the project with Visual Studio, then my dll crashes when passing that parameter.
How can I fix that ? ( is there some extra file or registry thing, instead of LPUNKNOWN maybe LPIDISPATCH ?, or merging proxy stub ? ( how to do this manually...) ?
Thanks, Bye !
Braulio
|
|
|
|
|
Braulio, explain better your problem ...
You are using two computers, eg. try to call the dll from another computer ?
You registered properly the dll ?
Merging the proxy/ stub normally isn't necessary if you are using type library ,marshaling, I presume you are, because you are using automation, and using automation requires automation compatible parameters , eg . passing IDispatch pointers to world ...
Joao Vaz
|
|
|
|
|
Hi Joao !, Nice to meet you again !
I´m still working on the Ms Word thing... ( I have my ATL ActiveX control in a DLL, then Ms Word automated, and my MFC application that controls that Ms Word app).
I've a method defined in an interface to pass the Metafile to the ActiveX, that method has as a parameter an LPUNKNOWN ( later I make a QI to IStream), should I pass IDisptach pointers instead of IUnknown ?.
The problem that I have is that the call to this method only works in the computers where I have compiled the DLL. If not, when I call the method it fails ( just crashes, or gives me a message saying that something is going wrong).
I register the DLL calling this "regsvr32 MyDll.dll", did I missed any parameter ?.
My idea was to generate the Proxy/Stub DLL ( merged in my DLL), to call the methods, is that a good idea ?
Thanks a lot Joao, Bye !
Braulio
|
|
|
|