|
CPallini has given you a basic example for a FSM - you will understand that we're not here to provide ready solutions. You have formulated your game states - what stops you from extending that sample with that, or, at least trying?
|
|
|
|
|
Hi
I am getting a number of errors in MFC functions (Using Visual Studio 2012)
can't convert const char [xx] to LPCTSTR when using a literal with " double qoute it
was my understanding that anything with " was a pointer now weather its char * or
LPCTSTR is a different issue however it shouldn't be of type const char[xx]
Thanks
|
|
|
|
|
Do you have the project set to use the Unicode character set? If so LPCTSTR is equivalent to LPCWSTR , so you cannot convert a char pointer to it.
|
|
|
|
|
Richard
you did it again !!!!!
|
|
|
|
|
Thanks. Sadly my flashes of brilliant intuition are getting fewer and further apart these days.
|
|
|
|
|
Try using TCHAR instead of char , and wrapping string literals in the _T() macro.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
|
I prefixed the string with a _T macro
And it compiled
Thanks for your help
I have to re-read and he article
|
|
|
|
|
In my visual Studio project for character set I choose <not set=""> not sure what that means ansi?
1 byte
The other two choices were Unicode and multi byte
So if Unicode is character representation by 2 bytes. what is multi byte ?
|
|
|
|
|
ForNow wrote: So if Unicode is character representation by 2 bytes. what is multi byte ? See here.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
So if I select for my project setting char set -> not set .... And wrap all of my strings with a _T( macro is that best practice
... Thanks
|
|
|
|
|
Will you show me the full example?
|
|
|
|
|
|
Hello,
I have programmed a MFC utility with some radio buttons on the main window.
When I click on a radio button the BN_CLICKED message is captured by the handler and does some task.
I have seen an unexpected behaviour: when I open another window (hard disk explorer, control panel, speaker volume and also a generic folder) and then I close it, the radio button clicks even I haven't clicked the mouse on the radio button.
I suppose that this is caused by my program's window that get the focus when I close the other window.
How can I block this behaviour?
|
|
|
|
|
This behavior is, or at least used to be, by design. When [de]activating the window, the radio buttons do not know that. All they know is that they got focus, and the behavior for radio buttons is to auto-select on focus.
See the WM_SETFOCUS message here.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
Ok,
I have read the WM_SETFOCUS page and now I disable all the radiobuttons when the window lose focus. This works but it seems a strange solution to me.
I wonder if there is a better way to solve the problem. I want to discard message from radiobuttons when they are launched by focus changes.
|
|
|
|
|
I just put together a dummy MFC app with four radio buttons, and an ON_BN_CLICKED() handler for each. With the app running, I open various other windows and then switch back to it, none of the four handlers are fired. Hmmmm
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
Dear David,
they aren't fired because you switch from one window to another without have a focus on radiobutton.
If you click on a radio button with the mouse the radio button gets focus: if you switch frome one window to another you will see that the handlers are fired.
If you never click on radiobutton with mouse this doesn't happen.
|
|
|
|
|
Nope, radio button had focus.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
Does somebody have an idea why will the following happen:
printf("Min Value: %d\n", minValue(root));
printf("Max Value: %d\n", maxValue(root));
// not sure why line below throws segmentation core
//printf("Min Val: %d Max Val: %d\n", minValue(root), maxValue(root));
minValue and maxValue are recursive functions returning the min/max value of a binary tree, when called separately as in lines 1 & 2 they work fine, but when called from the same printf statement I get a segmenation fault in linux.
Thanks!
|
|
|
|
|
Without seeing how minValue() and/or maxValue() are implemented, it'd simply be a guess. Perhaps the functions are not "unwinding" correctly.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
I will paste the code. But they are working fine when they are called individually.
int minValue(TreeNode * root) {
TreeNode * current = root;
if (current == NULL) return -1;
else {
while (current->left != NULL)
current = current->left;
return current->num;
}
}
int maxValue(TreeNode * root) {
TreeNode * current = root;
if (current == NULL)
return -1;
else
{
while (current->right != NULL)
current = current->right;
return current->num;
}
}
And they are called as posted above. One more time, when called individually they work fine.
|
|
|
|
|
Where's the recursion?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
I'm sorry, the recursion is in other functions, not in this one. Do you know why it's not working when they are called together?
|
|
|
|
|
Just a theory, but does the following work:
int min = minValue(root)
int max = maxValue(root));
printf("Min Val: %d Max Val: %d\n", min, max);
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|