|
Using VS2005 I often find myself making incremental changes to an app then finding that it will start crashing in some weird way. In the general, the weirder that it crashes - the better - because then I know to just clean the solution and rebuild it.
Just wondering what the general rule is on the optimal frequency of "build solution," "clean solution," and "rebuild solution." ?
As for me, as the first paragraph suggests - I just use "build" repeatedly until I start getting some weird heap corruption thingie that I'm pretty sure I'm not causing, by then I know it's time to "clean solution" and build again....
But that's just me - an amateur hack who's copy of Ivor Horton was stolen in Ecuador.
-@LRG
|
|
|
|
|
Hi all,
recently, I changed from VS2005/XP to VS2008/Vista. Suddenly, my MFC application wants to contact the IP 224.0.0.22. I know that this is an IP for some multicast protocol.
This did not happen with VS2005 under XP! I do not know if this is an VS2008 issue and/or Vista issue.
Is there any way to disable this ? I do not want to scare customers using my application thinking this is a virus or trojan...
Thanks Ingo
|
|
|
|
|
I want to test for an invalid character in entered numeric (integer) data,
(e.g., enter "d23", instead of "123")
In the following code, the do loop loops infinitely after
an invalid entry, "d23". Seems like cin is not stopping to
accept more input the second time around.
Can anyone tell me what I'm doing wrong?
Thanks,
Tom
------------------------
#include <iostream>
using namespace std;
void main()
{
int x;
cout << "Type in an integer value: ";
cin >> x;
while (cin.fail())
{
cin.clear();
cout << "Invalid character.\n Type in an integer value: ";
cin >> x;
}
cout << x << endl;
}
|
|
|
|
|
hain wrote: cin >> x;
while (cin.fail())
What about:
while (! (cin >> x))
{
cin.clear();
while (cin.get() != '\n');
}
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
dear friend
why we can't use cin.get directly here? why we use while loop here? thanks
Li Zhiyuan
|
|
|
|
|
Thanks David, terrific, that works perfectly!
Problem is, your solution is mysterious to me...
I don't understand it.
Why doesn't the get() move the stream pointer
forward (after an error), so that by the time we
get back to cin>>x, the extraction starts after the
'\n' (i.e., nothing is extracted)?
Thanks again,
Tom
|
|
|
|
|
cin >> x stops at the first whitespace, so cin.get() is used to get passed all that.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
I should have been able to figure that out!
Thanks!
Tom
|
|
|
|
|
I'm trying to use the PSM_QUERYSIBLINGS message to query information between some CPropertyPages.
It works great if the pages have already been "shown" but the property page class never gets the message if the property page tab has not already been clicked on for that page. I thinks it's the issue of the propertypage window does not get created until it needs to.
How can I use PSM_QUERYSIBLINGS to get information from another propertypage object before the propertypage window is "shown"? Is there a way to force all the property page windows to exist from the start?
|
|
|
|
|
PROPSHEETPAGE Structure
...
PSP_PREMATURE flag:
"Version 4.71 or later. Causes the page to be created when the property
sheet is created. If this flag is not specified, the page will not be
created until it is selected the first time. This flag is not supported
when using the Aero-style wizard (PSH_AEROWIZARD)."
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I saw that earlier but my first question was does version 4.71 represent? MFC 4.71 ? or the control version is 4.71 ?
And my next question was concerning the PSH_AEROWIZARD. Does that mean if someone uses the page on a Vista box with Aero turned on, PSP_PREMATURE will be ignored?
Thanks for the response.
|
|
|
|
|
bob16972 wrote: my first question was does version 4.71 represent?
Shell and Common Controls Versions[^]
I'm not sure about the aero flag and/or Vista.
Regardless, sending messages to windows that don't exist isn't
going to work (obviously).
As David Crow mentioned, there shouldn't be any need to send messages to
pages the user hasn't (and may never) interacted with yet. If a page needs
some initialization value or needs to initialize controls, then it should be done
when the page receives the WM_INITDIALOG message and/or the PSN_SETACTIVE notification
(OnSetActive() in MFC).
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
|
Why would you need to query a page that has not been interacted with by the user?
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Enabling/disabling fields in the other pages (that might be active) that depend on the value of another page (Actually the member of the page class)
|
|
|
|
|
Can't you just use the values that the page would be initialized with?
Is the OK button being handled by the sheet itself?
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
DavidCrow wrote: Can't you just use the values that the page would be initialized with?
Thats the goal. Thats what I'm trying to accomplish by asking if any other page has a certain flag set so this page can disable the appropriate fields.
DavidCrow wrote: Is the OK button being handled by the sheet itself?
No, the OnApplyNow() is handled by the sheet. I don't want any page transferring it's data to the document until the sheet verifies that all pages passed validation.
|
|
|
|
|
One solution I find quite easy to do is to handle the OK button in the sheet. In that handler, I confirm whether each page is valid, and if it is, let it handle its own data exchange/validation. If any page fails validation, then the property sheet does not get dismissed.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
I'll try that since in my OnApplyNow(), the OnOk could have already occurred and removed the window whereas if the "Apply" button was pressed, I'm still responsible for calling the UpdateData() for the active page.
Thanks for the tip.
|
|
|
|
|
I have a question about CControlBarInfo MFC class. First of all there is no documentation about it in the MSDN. It's declared in "Afxpriv.h".
The class is used to save and restore the state of the control bars through serialization. I don't need any serialization, I only want to know the positions of the toolbars in my application.
I have a MDI MFC application. Just to make sure we speak about the same thing:
1. An MDI application runs in a top level MDI parent frame.
2. That frame has an embedded child window, a <b>MDI client</b> window.
3. The MDI client window can host any number of MDI child windows.
My problem is the <b>MDI client</b> window. That window shares the client area of the parent with the docked toolbars and the status bar. I want to make that window smaller to make room for one more non-MDI window to be hosted by the same parent. It's possible, I did it, but I can't get along with the sizing calculations because of the random way the toolbars can be docked. I need info about the positions of the docked toolbars. The CControlBarInfo class offers any info I need, except one. I don't know how to find out to which side of the window is a toolbat docked. I can't relay on the window coordinates because there may be multiple toolbars, so a toolbar, even if docked, may not be adjacent to any border.
(Example: I can find out if it's visible, if it's docked. But I only can find out if it's verical. I don't know if it's docked to the right side or the left of the window).
Here is the only thing I know about the CControlBarInfo class, the declararion from the afxpriv.h file:
<code>class CControlBarInfo
{
public:
// Implementation
CControlBarInfo();
// Attributes
UINT m_nBarID; // ID of this bar
BOOL m_bVisible; // visibility of this bar
BOOL m_bFloating; // whether floating or not
BOOL m_bHorz; // orientation of floating dockbar
BOOL m_bDockBar; // TRUE if a dockbar
CPoint m_pointPos; // topleft point of window
UINT m_nMRUWidth; // MRUWidth for Dynamic Toolbars
BOOL m_bDocking; // TRUE if this bar has a DockContext
UINT m_uMRUDockID; // most recent docked dockbar
CRect m_rectMRUDockPos; // most recent docked position
DWORD m_dwMRUFloatStyle; // most recent floating orientation
CPoint m_ptMRUFloatPos; // most recent floating position
CPtrArray m_arrBarID; // bar IDs for bars contained within this one
CControlBar* m_pBar; // bar which this refers to (transient)
void Serialize(CArchive& ar, CDockState* pDockState);
BOOL LoadState(LPCTSTR lpszProfileName, int nIndex, CDockState* pDockState);
BOOL SaveState(LPCTSTR lpszProfileName, int nIndex);
};</code>
Or else, is there another way to find out the client area of a window not used by the status bar or the docked toolbars ?
|
|
|
|
|
Hi guys,
i want to start internet explorer in fullscreen mode (F11).
how can i do that?
it is no problem to start internet explorer with shellexecute:
ShellExecute(NULL, NULL,"C:\\Program Files\\Internet Explorer\\iexplore.exe","www.codeproject.com",NULL, SW_SHOWMAXIMIZED);
|
|
|
|
|
Try using this as an argument
"-k www.codeproject.com"
|
|
|
|
|
|
Hi Expert
Suppose i have deleted some file of a Directory and i want that file come back Automaticall to that Folder itself..
Thanks in Advance
RYK
|
|
|
|
|
VC_RYK wrote: Suppose i have deleted some file of a Directory and i want that file come back Automaticall to that Folder itself..
How did you delete it?
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|