|
The keys that get passed onto a control depend on the value the control returns in response to the WM_GETDLGCODE message.
Dialogs normally trap arrow keys and use them to control navigation amongst the controls in the dialog - if your control needs to respond to the arrow keys, it needs to return at least DLGC_WANTARROWS in response to WM_GETDLGCODE . (For more details, look up WM_GETDLGCODE in MSDN).
"We are the knights who say Ni" (The Knights Who Say Ni)
|
|
|
|
|
It works now.
Thank a lot.
/Mathias
|
|
|
|
|
I've got a situation where I have 2 related programs - one obtains and saves data, the other reads the saved data and processes it further. (Both programs are standalones, and not network enabled.) Since some of the initial processing and some of the final processing can share the use of certain classes (such as data access and file manipulation), I want to set up the IDE project to contain both programs, but utilize the same source files for those areas that are common.
Help me wrap my brain around this, since one project is not creating a lib or dll that the other one uses, but both are dependent on the same subset of files. What is a good way to set this up in the IDE, and what are the problems with this approach?
Dave
"You can say that again." -- Dept. of Redundancy Dept.
|
|
|
|
|
We did the same here until recently with projects. All we did was add the files (as in Project->Add files) which are in the other projects directory into the other project. As long as the headres can be picked up easily enough.
You could also put the files into a shared directory which Tools->Options.directories can point to to pick them up properly. Then add the .h/.cpp files to both projects.
Roger Allen
Sonork 100.10016
WHats brown and sticky?
A stick or some smelly stuff!
|
|
|
|
|
Thanks, Roger. I guess I am stumbling over whether I should keep the shared files separately from the others, or whether to have them reside with one project and be accessed by the other. When using SourceSafe, updates to either project should be seen be the other project, but then it would make sense to keep them in a separate, common folder.
Right now, one project is much further along, and the other is practically just starting. All the files from the first project are stored in a directory, and I want to avoid having 2 copies of each of the shared files, but I want all the files for the second project stored in its own directory too.
I guess the best solution is to have directory for unique project A files, directory for unique project B files, and directory for shared files, but all accessed within the IDE as belonging to both projects.
Dave
"You can say that again." -- Dept. of Redundancy Dept.
|
|
|
|
|
Just a suggestion. Would a static library project for the shared files be useful?
Chris Meech
"what makes CP different is the people and sense of community, things people will only discover if they join up and join in." Christian Graus Nov 14, 2002.
"AAAAAAAAAHHHHHH!!!!! Those leaks are driving me crazy! How does one finds a memory leak in a garbage collected environment ??! Daniel Turini Nov. 2, 2002.
|
|
|
|
|
The static library idea would be a nice way to keep everything all tidy, it would just have to undergo constant revision as more and more files from the first project were determined to be needed by the second. That shouldn't be a problem, though, as that is what the whole IDE/project system is supposed to make easier.
Thanks,
Dave
"You can say that again." -- Dept. of Redundancy Dept.
|
|
|
|
|
How do you get the killfocus for a CButton. There is a ON_BN_KILLFOCUS but that never comes. In the class wizard there is no option for killfocus.
scott
|
|
|
|
|
Just a guess, but according to the platform SDK, buttons must have the BS_NOTIFY style set if you want them to send BN_KILLFOCUS. Does your button have that style set?
"We are the knights who say Ni" (The Knights Who Say Ni)
|
|
|
|
|
You probably can't get the KillFocus message because it doesn't propagate up to the button's parent window. So you need to derive your own class from CButton and then you can add a message handler for WM_KILLFOCUS.
Regards,
Alvaro
All you need in this life is ignorance and confidence, and then success is sure. -- Mark Twain
|
|
|
|
|
WM_KILLFOCUS doesn't propagate up, but the button does send BN_KILLFOCUS to its parent window (if its BS_NOTIFY style is set) - so handling the BN_KILLFOCUS notification in the parent should work.
"We are the knights who say Ni" (The Knights Who Say Ni)
|
|
|
|
|
Cool, so he just needs to handle the WM_NOTIFY message on the parent and check for BN_KILLFOCUS along with the proper ID for the button.
Thanks for the info.
Regards,
Alvaro
All you need in this life is ignorance and confidence, and then success is sure. -- Mark Twain
|
|
|
|
|
|
I neded a feature where I want my Dialog application to be versioned (Like a timestamp) whenever I recompile my file. I am unaware of methods to do this . Please help
|
|
|
|
|
See __DATE__, __TIME__, __TIMESTAMP__ predefined macros in MSDN library
|
|
|
|
|
http://www.codeproject.com/macro/incprivatebuild.asp
or search for auto-incrementing a version number here or on CodeGuru
-pete
|
|
|
|
|
My program when first opened takes up about 1K of memory. Then When open some dialogs and documents etc. the usage goes up.
Closing all the children doesn't shrink the usage, though, at least not by anything significant. However, when I minimize and maximize, I'm back to 1k.
Is this pretty normal? Does windows just assume the memory is still associated with my task, until it gets freed during minimize? Or does this signify I'm leaking memory?
I'm running Win2000, if it matters.
Thanks
BW
"Gandalf. Yes. That is what they used to call me. Gandalf the Grey. *I* am Gandalf the White."
- Gandalf the White
|
|
|
|
|
What you are describing is normal behavior. I don't know exactly what Windows is doing, but minimizing an application does seem to flush the cache. If you want to know for certain if you are leaking, buy a copy of Bounds Checker or just run your application in the debugger. When you exit look at the output window and search for the word leak. These are only basic leaks that Visual Studio finds though; a new without delete. Bounds checker will find the more difficult leaks; like creating a com object and not calling release. But with any more sophisticated tool, you have a bigger learning curve and it can be frustrating to use.
Ron Ward
|
|
|
|
|
Thanks Ron!
BW
"Gandalf. Yes. That is what they used to call me. Gandalf the Grey. *I* am Gandalf the White."
- Gandalf the White
|
|
|
|
|
Hi,
To use StrStrI, I
#include "shlwapi.h"
#pragma comment(lib, "shlwapi.lib") // link to shlwapi.lib
MSDN states: "shlwapi.dll 4.71 or later" (and, basically, IE4 must be installed)
However, on 98SE, even with IE6 installed, I get:
"missing export Shell32.dll:StrStrIA"
What's wrong? Do I need to write my own StrStrI? (I need to support 98, IE4 is no problem)
Nur wer feige ist tötet Liebe durch das Wort allein [sighist] | [Agile Programming] [doxygen] If you look for evil in me you will find it whether it's there or not.
|
|
|
|
|
Because of the final "A", it sounds like a problem of ANSI/UNICODE versions of the function
is your code built UNICODE?
Angels banished from heaven have no choice but to become demons
Cowboy Bebop
|
|
|
|
|
no, it's a straight MFC/ANSI build.
I'm a little bit confused by the dll name mismatch.
Nur wer feige ist tötet Liebe durch das Wort allein [sighist] | [Agile Programming] [doxygen] If you look for evil in me you will find it whether it's there or not.
|
|
|
|
|
You probably need to define WINVER to be 0x0400 or 0x0500 or something like that
"No matter where you go, there your are..." - Buckaoo Banzi
-pete
|
|
|
|
|
I have a controller program working like this. controller is set as a time event 1000/sec. But the "current_trials", sometime increments, even the controller doesn't go into state 1. why? Thank you.
controller()
{
static clock_t start_time, end_time;
if(state==1)
{
position= get_position();
set_force(position);
if(position > 10.0)
{
start_time= clock();
state = 2;
}
}
if(state==2)
{
end_idle = clock();
idle_time = (end_idle - start_idle);
if (idle_time >= IDLE_DURATION)
{
start_idle = end_idle = 0;
state=3;
}
}
else//state=3
{
position=get_position();
if(position < 0.5)
{
load_force_spatial_profile();//this is time consuming
state = 1;
current_trial++;
}
}
}
|
|
|
|
|
What is state intialised to, and where?
Also, your states are best described by an enum
e.g.
enum MyStates {ms_timing = 0, ms_loading, ms_state_to_be_defined, ms_error, ....};
This will make your program much more readable for yourself and others in the future.
Roger Allen
Sonork 100.10016
WHats brown and sticky?
A stick or some smelly stuff!
|
|
|
|