|
What you are trying to do is basic thing
MSN Messenger.
prakashnadar@msn.com
|
|
|
|
|
Your question is a little vague.
Is this what you are looking for?
http://www.microsoft.com/msj/archive/S274.aspx[^]
Michael
But you know when the truth is told,
That you can get what you want or you can just get old,
Your're going to kick off before you even get halfway through.
When will you realise... Vienna waits for you? - "The Stranger," Billy Joel
|
|
|
|
|
ill try to be explain what i need a little better.
im a software engineer in the embedded market working on a multi-media co-processor
during development , we have an evaluation board to test this processor( it has an embedded arm processor), this board is something like a small computer , it can run applications, and has a filesystem, and has many configurations.
my company uses a very ugly interface to test it, and as a side project i wanna rewrite the interface, currently is looks like giant dialog box with many buttons, and is very hard to understand.
my idea was to write a program that will look like windows, the main window will have
a start button, pressing it will open a dialog that will give me choises of the applications + button for control panel to change the different configurations.
one application will be file explorer that will look like windows explorer but the file system will be the one on the evaluation board.
if you got better idea how the interface should look or how can i implement it please help.
Gonen
|
|
|
|
|
#include "stdafx.h"
#include <windows.h> // Sleep
#include <conio.h> // _getch, kbhit
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int state = 0;
int exit = 0;
while(1)
{
if(kbhit())
{
exit = _getch();
if(exit == 27) // ESC
break;
}
if(state == 0)
cout<< "\n STOP.\n";
else if(state == 1)
cout<< "\n Prepare to GO.\n";
else if(state == 2)
cout<< "\n GO.\n";
else if(state == 3)
cout<< "\n Prepare to STOP.\n";
state++;
if(state == 4) state = 0;
Sleep(1000);
}
return 1;
}
|
|
|
|
|
I am currently trying to write a simple program that allows the user to click in the "view" to define the start of a line, draw a line from the start to the mouse (where ever the mouse moves to and while it moves) and then complete the line when the user clicks in the view again.
The only hangup that I'm having is that after I click in the view and begin to move the mouse, I end up drawing lines to everywhere the mouse goes and eventually the screen looks a mess with lines all over it. I understand why this happens, I just don't know how not to make it happen.
In psuedocode, my code goes something like this.
OnLButtonDown
CreateStartPoint
GetScreenCoord
OnMouseMove(POINT point)
LineTo(StartPoint, point)
OnLButtonDown
CreateEndPoint
GetScreenCoord
LineTo(StartPoint,EndPoint)
I'm missing something to "brush" over the old mouse position each time OnMouseMove is called. I've looked at some sample code but haven't been able to get it to work.
Other samples have mentioned using Memory DC's and Storing the view as a Bitmap.
Anyone out there got a simple solution?
I'm fairly confident that once someone explains how to accomplish this, I'll be able to figure out the rest.
Thanks
|
|
|
|
|
There is a sample project called as DRAW that comes with VC installation.
This project will provide all the inputs needed for ur application.
MSN Messenger.
prakashnadar@msn.com
|
|
|
|
|
I don't have a "DRAW" sample. I have a "DRAWCLI" sample.
If these are the same then I know what you're talking about. However, the code isn't very portable and is way to complex for what I'm trying to do. The DRAWCLI sample uses OLE and ties the drawtool objects into the drawview cview so tightly that it becomes very difficult to pull just the drawtool object into a project and put it to use. Eventually I suppose I could trim the code down and disect it to where it fit my needs.
|
|
|
|
|
An easy solution is to use an XOR pen. When you draw your line it'll be XORed with whatever is already on the screen. When the mouse moves draw the previous line again using the XORed pen (this will remove the previous line) and then draw the new line, again using the XORed pen.
This works because XOR is it's own inverse.
To actually code this you'll need to use the api function SetROP2 before drawing. This determines how GDI merges pens (and some other drawing objects too) with what's already on the screen.
The only disadvantge is that an XOR pen isn't a solid colour, rather it appears as the inverse of the colour on the screen. Of course, this might actually be a good thing as it ensures your line is always visible no matter what you draw over.
Hope that helps.
|
|
|
|
|
hello,Please tell me what CALLBACK doing?thanks.
human
|
|
|
|
|
callback functions are static functions in your code that the operating system calls to notify you of some condition, such as a timer firing
"there is no spoon" biz stuff about me
|
|
|
|
|
l a u r e n wrote:
callback functions are static functions in your code
callback functions are not static functions... It is defined as follows
#define CALLBACK __stdcall
MSN Messenger.
prakashnadar@msn.com
|
|
|
|
|
Think twice, what about in C++?
Rickard Andersson
Here is my card, contact me later!
UIN: 50302279
Sonork: 37318
|
|
|
|
|
Well i did do some RnD before posting tht , as long as it is VC++ i dont think its a static function unless i missed something.
or you could show me something that says its static.
MSN Messenger.
prakashnadar@msn.com
|
|
|
|
|
Rickard Andersson19 wrote:
Think twice
surely in VC++ CALLBACK is not a static function at all.
and
Rickard Andersson19 wrote:
what about in C++?
Is VC++ not C++ ??
so really i dont know which C++ compiler you are talking about, but in VC++ callback is not a static function, its only a calling convention.
MSN Messenger.
prakashnadar@msn.com
|
|
|
|
|
Mr.Prakash wrote:
Is VC++ not C++ ??
VC++ is a compiler. C++ is a language.
In C++ (the language) you must declare a method as static before you can use as a callback.
Rickard Andersson
Here is my card, contact me later!
UIN: 50302279
Sonork: 37318
|
|
|
|
|
Rickard Andersson19 wrote:
VC++ is a compiler. C++ is a language.
VC++ compiles code writen in C++ so If you write something in C++ that VC++ cannot compile then its not a VC++ code.
what ever that meant.
using static functions as callback is one thing and in VC++
CALLBACK is different not callback but CALLBACK (something the original poster has asked the question about).
I hope now its clear.
MSN Messenger.
prakashnadar@msn.com
|
|
|
|
|
Mr.Prakash wrote:
VC++ compiles code writen in C++ so If you write something in C++ that VC++ cannot compile then its not a VC++ code.
what ever that meant.
You can write C code. And LRESULT CALLBACK Name(...) is a callback declaration of a C function callback, not C++. lauren said it's a static function, and because this is a (V)C++ forum C++ is the first hand language so a callback function is a static function (member function actually).
Mr.Prakash wrote:
and in VC++ CALLBACK is different not callback but CALLBACK (something the original poster has asked the question about).
I hope now its clear.
if so, lauren explained what a callback was? not the defination of CALLBACK ...
Rickard Andersson
Here is my card, contact me later!
UIN: 50302279
Sonork: 37318
|
|
|
|
|
Rickard Andersson19 wrote:
if so, lauren explained what a callback was? not the defination of CALLBACK...
lauren said its a static function, which is wrong(it can be a static function but not neccessary).
lauren said what is callback function, that is correct.
no wonder the author of the post had given a low grade to that ans.
MSN Messenger.
prakashnadar@msn.com
|
|
|
|
|
Mr.Prakash wrote:
lauren said its a static function, which is wrong
In C++ it's not.
Mr.Prakash wrote:
lauren said what is callback function, that is correct.
What do you mean?
Your English is almost impossible to understand sometimes.
Rickard Andersson
Here is my card, contact me later!
UIN: 50302279
Sonork: 37318
|
|
|
|
|
thanks,Would you give me CALLBACK example.
human
|
|
|
|
|
A CALLBACK function is a function in your code that Windows calls to tell you about an event or an item of interest.
Here is an example. The Windows API function EnumWindows enumerates the top-level windows. You pass it a pointer to a CALLBACK function. Windows calls that function once for each top-level window:
BOOL CALLBACK MyFunction(HWND hwnd,LPARAM lParam)
{
return TRUE;
}
EnumWindows(MyFunction,0); The function MyFunction is a callback function. When you call EnumWindows , Windows will call MyFunction for each top-level window in the system.
Software Zen: delete this;
|
|
|
|
|
thanks Gary R. Wheeler
human
|
|
|
|
|
i have just created a MDI application using CFormView. I have created 3 user interfaces - let's say Form A,B,and C. in form A i created a push button. i want to call form b by clicking form A's push button. and i want to call form C by clicking form B's push button. so how do i do it? plz i need the answer as fast as i can. i doing my final project using VC++.
NIMRODEL
|
|
|
|
|
Basically, in the class hiearchy, you have the main frame window. This owns the toolbar, the menu, and the child frame windows. Each child frame owns it's form view. So, if you need to issue a command that affects a form in the frames, you first need to obtain a pointer into the target view's class. Then use standard dialog commands to issue commands.
In order for this to work, you need pointers to the child frame windows. If you don't have them, you can enumerate through the childs of the main frame window by using GetTopWindow , then running a series of GetNextWindow calls along with a test to IsChild function. After you have all the pointers into the child frames, call GetActiveView through them to get the CView objects. Then cast down to CFormView, and voila, call the necessary functions.
You should also consider redesigning your application a bit if you don't have the pointers to the child windows. Enumerating through them is really troublesome. The easiest thing is to have pointers to the CFormView objects. You can always cast backwards or use GetParent to move back through the class hiearchy.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
well......i don't quite get it. b'coz i'm still new in this subject. i read somewhere that we can use OpenDocumentFile() func. if it's okay for u...can u include code sample for it.
NIMRODEL
|
|
|
|