|
benjamin23 wrote: but i
dont know how to continue processing this event
You call DoDragDrop[^]
led mike
|
|
|
|
|
Well, i´ve done that, i can drag things arround in a verry wird way, only works for items inside the menu, drop doesnt work it will refuse to, items dont change, im starting to think that this will be a little more difficult than i think.
1 Lots of OLE sh*t involved, implement DragDropHelper, IDropTargetHelper and maybe IDragSourceHelper ?
2 What about dynamic menus & ownerdraw ?
3 No code examples not even at msdn, and i mean no where, im starting to browse chinese web pages.
|
|
|
|
|
I have to use a DOS Window in background and have to use DOS commands to run some actions.
Can VC++ 6.0 launches DOS Window (& Minimize it) then issues some standard commands?
Thanks for any help
-- modified at 16:50 Tuesday 12th December, 2006
|
|
|
|
|
Are you sure that you must use DOS? Non-programmers often call console programs DOS programs (they are not) and they call command-prompt windows DOS boxes. Command-prompt windows can execute a variety of application types, not just DOS applications.
There are articles about redirecting standard input and standard output. I am not sure that that works for true DOS windows but it is the most likely solution.
Depending on the program, it might be difficult to do what you need to do. It might seem that all "DOS" programs are created equal, but they are not. It depends on the program whether or not you can control it from another program.
|
|
|
|
|
Yes, I do. However, Steve has just shown me how to do it.
Thanks for the advices and I will keep it in mind!
|
|
|
|
|
The samples that Stephen provided are not DOS commands or programs.
The System function is very simple. It is likely you will need to do something more than what it can do. If so, then it is likely easier to use equivalent functions that don't need a separate process.
Also, the System function executes the command shell, which you might not need.
|
|
|
|
|
#include "StdAfx.h"
#include <process.h>
int main()
{
system("echo Hello world!");
system("dir");
system("tree");
return 0;
}
Steve
|
|
|
|
|
Wow, you make it so easy. It is exact what I need ... I thought it must be hard to do it!
By the way, is there any method to make the MS DOS stay (not disappear) but in MINIMIZE mode (stay in the task bar)?
Many thanks Steve, I am really appreciate it! :->
|
|
|
|
|
The easiest was would be to lanuch your application via a shortcut and set the details on the shortcut.
Steve
|
|
|
|
|
The application is minimized as you suggested, but the MS DOS Window disappears after 0.5 second following each command system("...");
- Is it very difficulty to have MS DOS Window stay? Because I need to verify what it shows after a command excecuting!
|
|
|
|
|
You could try something like this:
#include "StdAfx.h"
#include <process.h>
#include <conio.h>
int main()
{
system("echo Hello world!");
system("dir");
system("tree");
system("echo Press any key...");
getch();
return 0;
}
Steve
|
|
|
|
|
It is the same, I did try system("pause"); It is pause but the previous MS DOS Window still disappear! So it shows an empty MS DOS Window ... but it stay there until I press a key!
|
|
|
|
|
Can you describe your application a little. For example, is it a console application or a Win32 application?
Steve
|
|
|
|
|
It is a WIN32 MFC application
|
|
|
|
|
Try this:
#include "stdafx.h"
#include <process.h>
#include <conio.h>
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
AllocConsole();
system("dir");
system("tree");
getch();
FreeConsole();
return 0;
}
Steve
|
|
|
|
|
Once again you save my day, it works perfectly!
Many thanks, I am really really appreciate it!
|
|
|
|
|
|
You can execute the command prompt using CreateProcess or ShellExecute and use the "/K" option in the command prompt's arguments.
|
|
|
|
|
I try
ShellExecute(this->m_hWnd,"dir/k", "","","", SW_SHOW ); <br />
it does not work!
Can you give a typical DOS command?
Thanks
|
|
|
|
|
Please stop saying DOS!
First, did you search for previous answers? It is nearly certain that this question has been asked and answered many times before.
When I said command shell, I meant command-interpreter.
Look at the documentation of the system function. It is useful because it describes how the filename of the "command-interpreter file" is determined. For NT type versions of Windows, the command-interpreter file is Cmd.exe. For 95 versions of Windows, the command-interpreter file is Command.com. Those names might change for future version so it is better to get the filename from the environment.
You need to execute the command-interpreter and pass the options and command on the command line. Note that this will create a new window for the command; if that is not what you need, then I am sorry for misleading you.
|
|
|
|
|
While you're correct you seem to be being a little pedantic; I think we both know what he meant by the question.
Steve
|
|
|
|
|
I did not know what was meant by the initial question and the answer could have depended on the difference.
People trying to help often waste their time answering a misunderstood question. People asking questions should try to be clear. In this situation, this person is not trying. It is now not important for this question, but this person will likely waste people's time in the future.
My guess is that this person is not using the best solution for their fundamental problem. They probably think that this solution is the easiest, but then they will need to enhance it some more and the final solution is likely to be more work than if they considered all their requirements initially and asked for solutions for all the requirements.
|
|
|
|
|
I understood what he meant. Sometimes people do be vague and it annoyes me, but in this instance I didn't have any problems.
Steve
|
|
|
|
|
I have not been very active in CodeProject, but in the CodeGuru forums I was the first to hit 10,000 posts and about 99% of them were efforts to help others. So I have seen quite a few vague questions and such. People often spend less time asking a question than we spend answering them. In this situation, my guess is that there are better answers if the person were to take the time to be clear about requirements.
|
|
|
|
|
I can't argue with you there.
Steve
|
|
|
|