|
|
My dad says the same thing... He sits there and blows people up... Seems to help... Just thought id share my thoughts
|
|
|
|
|
Serious Sam? works for me...
- tareq
|
|
|
|
|
I am trying to derive a CTreeCtrl, part of which to allow the user to press the space bar to toggle the check boxes. (Basically making an MFC version of Carlos Quintero's TriStateTree, with several other enhancements, since I cannot seem to find anything similiar already out there)
I did setup and write a message handler to trap the WM_KEYUP message and check if the spacebar was pressed, and toggle the checkboxes accordingly (which indeed works as tested thus far).
However, Windows has an annoying tendency to want to keep playing that stupid chime sound when pressing the space bar on a CTreeCtrl.
I've searched both here, MSDN, and the 'Net at large, and could not find anything to tell me how to disable the chiming sound.
How do I "shut-up" that chime sound programmatically in MFC?
Thanks
Steven Konopa
|
|
|
|
|
I would handle TVN_KEYDOWN instead of WM_KEYUP . The docs say "Return nonzero to exclude the character from the incremental search, or zero to include the character in the search" so you can probably return nonzero and the tree will ignore the keypress, which means no beep.
--Mike--
LINKS~! Ericahist | 1ClickPicGrabber | CP SearchBar v2.0.2 | C++ Forum FAQ
Strange things are afoot at the U+004B U+20DD
|
|
|
|
|
Thanks - that was the ticket! I went and changed my program to trap the TVN_KEYDOWN notification instead of the WM_KEYUP message, and it works perfectly!
Again, Thanks for your help!
Steven Konopa
|
|
|
|
|
How does one substitute a string for a comparison in an if statement?
Example-Normally I would do this:
if( sTitle.Find(sStr) != -1 )
But it could be:
if( sPhone.Find(sStr) != -1 ) or maybe,
if( sTitle.Find(sStr) != -1 || sPhone.Find(sStr) != -1 )
I can easily build a string for the criteria, but I can't seem to figure out how to get that actual value put in the if statement.
If I do this:
CString myString = "sPhone.Find(sStr) != -1"
use if( *myString ), It doesn't work...
Probably because it's only the first char pointed to.
I think I've been looking at this far too long to make any objective sense out of it anymore, and my brain pointer is NULL!
Help...
|
|
|
|
|
CString::Find returns the index of the start of the substring in the string, if it finds the substring; otherwise, -1.
if the substring is found, then, you don't have anything else to do, you already have it; you used it to search the string.
int iIndex = sTitle.Find(sStr);
if ( iIndex >= 0 )
{
// substring found.
}
else
{
// substring not found.
}
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
I appreciate the input Max, but what I really need to do is replace what goes inside the "if" statement programmatically.
I don't know what the "if" statement will look like until after the user has chosen their options for what to look for in what fields, so I need to build that query string based on their input, and then have "if" evaluate it.
I can't figure out how to substitute what goes inside the ( ) of the "if" statement with something I put together in a string...
It could be a short one liner like above, or a long query with multiple OR's and ANDs. At runtime, the variable in the "if" statement needs to be replaced with the actual query string I built.
|
|
|
|
|
Now that we all understand. That does not happen in C or C++.
You will have to develop some kind of parser/analyzer yourself, or find one already available as source code or as a library.
Maybe you make a class that represents each part of a query, evaluate each one and then evaluate the sum total of those results and end up with your answer, but there is no single 'runtime' query like what you are seeking built into the language.
|
|
|
|
|
Cpt Rick wrote:
CString myString = "sPhone.Find(sStr) != -1"
use if( *myString ), It doesn't work...
That's because C++ is a compiled language, you can't substitute code at runtime like you can in, for example, Perl.
--Mike--
LINKS~! Ericahist | 1ClickPicGrabber | CP SearchBar v2.0.2 | C++ Forum FAQ
Strange things are afoot at the U+004B U+20DD
|
|
|
|
|
I get the following Memory Leaks warning when my Dialog MCF program ends.
Detected memory leaks!
Dumping objects ->
c:\hctsemu\emulation\exampledlg.cpp(1648) : {644378} client block at 0x013A0A70, subtype c0, 404 bytes long.
a CSigDlg object at $013A0A70, 404 bytes long
Object dump complete.
The program '[3732] Example.exe: Native' has exited with code 20 (0x14).
This is using the following code to provide details:-
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#include ".\ssic_exampledlg.h"
Can any experts out there help me to home in on the memory leak please.
Graham.
grahamfff
|
|
|
|
|
Find out where this CSigDlg object was created and where it should have been destroyed.
The easiest way is to set breakpoints to the constructor and destructor of CSigDlg.
Don't try it, just do it!
|
|
|
|
|
Grahamfff wrote:
c:\hctsemu\emulation\exampledlg.cpp(1648) : {644378} client block at 0x013A0A70, subtype c0, 404 bytes long.
what is the code at that line ?
is there a malloc or new or something else there ?
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
So what is at line 1648 of exampledlg.cpp?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
I have written a program with Visual C++. Where on this website can I look for articles that inform me of how to create a skin for the executable file? Where can I find articles that will inform me of how to create the dialogue box which will give the user the option of saving, printing output?
|
|
|
|
|
On that page...
Don't try it, just do it!
|
|
|
|
|
C++/MFC Articles just look through them and pick what you like...
/* Just a Human Trying to Live in a Computers World. */
|
|
|
|
|
try using the CFileDialog class.....u can use it for saving and opening files.....already defined browser for that.....
search for it in MSDN...
HOPE THAT HELPZ....
cheerz.....
"faith, hope, love remain, these three.....; but the greatest of these is love" -1 Corinthians 13:13
|
|
|
|
|
I found this article and sample source ...
http://www.codeproject.com/dialog/skinsyse.asp
Very useful when I wrote my first skinned app.
I had to extended the functionality a lot to accomodate all the
features I eventually required but it was a great starting point.
You simply derive your main dialog class from the SkinDialog
class provided in the article.
Steve T
|
|
|
|
|
class CBasic {
private:
int x;
CRect rect;
CPoint pt;
public:
void function_1();
void function_2();
};
void CBasic::function_1(){
x = 5;
rect = CRect(1, 2, 3, 4);
pt.x = 1;
pt.y = 2;
cout << x << rect.bottom << pt.y; // 5, 4, 2
}
void CBasic::function_2(){
cout << x << rect.bottom << pt.y; // 5, 0, 0
}
What the heck? Shouldn't CRect and CPoint retain the value?
|
|
|
|
|
Ooops forgot to mention
function_1 is called first then function_2
void CBasic::function_1(){
x = 5;
rect = CRect(1, 2, 3, 4);
pt.x = 1;
pt.y = 2;
cout << x << rect.bottom << pt.y; // 5, 4, 2
function_2();
}
|
|
|
|
|
Strange as this code worked fine for me (i.e., both produced 542). I wonder if it could be a buffering problem (as I see your edited post, this is most likely the problem). Try calling function_2() first and note the result. Also try putting an endl at the end of each cout statement.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
You are right it does work. I tried in a clean Doc/View program too.
Odd that it doesn't work in the current program I am working on.
I have OnDraw calling a function to draw but CRect and CPoint value just disappear. I even output the value before the function is called but as soon it's called the value is gone.
This is what happen I use Debug to trace into it
CXX0069: Error: variable needs stack frame
|
|
|
|
|
Are you using cout in a GUI application?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|