|
code-frog wrote:
I hate doing things I know how to do it's boring.
Sure - but that's a long way from giving people with obviously very little experience in general that sort of opportunity. There's some basic coding skill that needs to be taught, or at least learned.
code-frog wrote:
think I at least am glad that supervisors do this.
I'm glad that it happens at my level of experience. But when people ask questions on a more basic level, it worries me.
code-frog wrote:
I paid you $37 an hour
You think these kids are on $37 an hour ?
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
You are completely right of course. I was being a lot more general. When you narrow the scope like that you are exactly right in that context.
The major flaw in all my arguments is that known genius's tend to be the inventors and everyone else just winds up with a head ache and a pay-cut. Or they got smart and learned to use Google and communities.
My name is Maximus Decimus Meridius, commander of the Armies of the North, General of the Felix Legions, loyal servant to the true emperor, Marcus Aurelius. Father to a murdered son, husband to a murdered wife. And I will finish this project, in this life or the next. Slightly modified " from Gladiator.
Code-frog System Architects, Inc.
|
|
|
|
|
That does seem to be a disturbing trend. Hmmmm
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Hi, is there a function or message that is sent to a Childframe or view when it becomes active? In other words, I have a few MDI documents open and would like to be notified when the user selects one (it becomes the view that gets focus), or if one of the child's views becomes the active one. I need to know when the user selects between these views when they are selected, but not simply which one is the active view at any given time.
Thanks!
|
|
|
|
|
|
Too freaking simple! Thank you for the direction. I needed to tweak it a bit, but it is perfect!
LRESULT CWinCTestFrame::OnActivate(WPARAM wParam, LPARAM lParam)<br />
{<br />
<br />
if(((HANDLE) wParam == this->m_hWnd) && (IsWindowVisible()))<br />
TRACE("ChildFrame - I'm Activated!\n");<br />
<br />
return 0L;<br />
}<br />
|
|
|
|
|
Paul Belikian wrote:
LRESULT CWinCTestFrame::OnActivate(WPARAM wParam, LPARAM lParam)
Hmm... Since you are using MFC, a simpler approach would be as follows:
In your class declaration :
afx_msg void OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd);
In your class implementation file:
BEGIN_MESSAGE_MAP(CWinCTestFrame, [baseClass])
ON_WM_MDIACTIVATE()
.
.
.
END_MESSAGE_MAP()
void CWinCTestFrame::OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd)
{
CMultiFrame_base::OnMDIActivate(bActivate, pActivateWnd, pDeactivateWnd);
if (bActivate)
TRACE("ChildFrame - I'm Activated!\n");();
}
bActivate will be TRUE or FALSE , depending on whether the child is being activated or deactivated, while pActivateWnd and pDeactivateWnd will point to the child being activated or deactivated, respectively.
More details at MSDN[^]
BTW, I don't think the call to IsWindowVisible() in your code is making any difference; 'visible' is not the same as 'active'.
--
jlr
http://jlamas.blogspot.com/[^]
|
|
|
|
|
Thanks again! Your suggestion also looks cleaner and I'll do it the way you suggested.
Jose Lamas Rios wrote:
BTW, I don't think the call to IsWindowVisible() in your code is making any difference; 'visible' is not the same as 'active'.
Yes, that's true, but in my application, when the view becomes 'active' it sends a message to the mainframe to trigger further action (it's a long story ). The IsVisible call prevents the childframe from sending that message to the mainframe when the child is being closed.
Once again, thank you for your help and responses!
Paul...
|
|
|
|
|
Hi, all
I need to Put a Break Point in MFC source file DLGDATA.CPP, but while I am in my own application, how could I do that?
the reason I need set breakpoint is I have those warning:
Warning: skipping non-radio button in group.
thanks
|
|
|
|
|
Hi,
just open the DLGDATA.CPP in your \Microsoft Visual Studio\VC98\MFC\SRC\ folder
and set your breakpoint by using the context menu.
I tried it in
HWND CDataExchange::PrepareCtrl(int nIDC)
and it worked, but I think this code shouldn't be too buggy...
Regards
|
|
|
|
|
|
valerie99 wrote:
the reason I need set breakpoint is I have those warning:
Warning: skipping non-radio button in group.
To eliminate the warning, you need to do the following:
1) Edit your dialog template and make sure every radio button group has all its individual radio buttons in consecutive tab order
2) Make sure the first radio button in each radio button group has the group style
3) Make sure every other radio button in the same group has not the group style
4) The first control after (in tab order) the last radio button in a group has the group style (if the last radio button in a group is also the last control in the dialog, set the group style to the first control)
After doing this, you'll have not only eliminated the warning, but also made sure your buttons will behave as expected (i.e.: you can navigate them in proper order using the tab key, and clicking one of them will deselect whichever one was selected in that group).
Hope that helps,
--
jlr
http://jlamas.blogspot.com/[^]
|
|
|
|
|
it was the #4, I check the group for the "The first control after (in tab order) the last radio button"...
okay, the last radio button is 13, the 14 is also in the group with 13, means I need to check 15 for the group, right? is 15 "The first control after (in tab order) the last radio button"?
after this, I still have a "Warning: dialog data checkbox value (40) out of range.".......you must know this one, too.....
thank you very much!
|
|
|
|
|
valerie99 wrote:
okay, the last radio button is 13, the 14 is also in the group with 13, means I need to check 15 for the group, right? is 15 "The first control after (in tab order) the last radio button"?
Assuming 13, 14 and 15 is the tab order, then yes, that's right.
valerie99 wrote:
after this, I still have a "Warning: dialog data checkbox value (40) out of range.".......you must know this one, too.....
That's a different problem.
This is the code in MFC's dlgdata.cpp (VC 6.0):
void AFXAPI DDX_Check(CDataExchange* pDX, int nIDC, int& value)
{
HWND hWndCtrl = pDX->PrepareCtrl(nIDC);
if (pDX->m_bSaveAndValidate)
{
value = (int)::SendMessage(hWndCtrl, BM_GETCHECK, 0, 0L);
ASSERT(value >= 0 && value <= 2);
}
else
{
if (value < 0 || value > 2)
{
TRACE1("Warning: dialog data checkbox value (%d) out of range.\n",
value);
value = 0;
}
::SendMessage(hWndCtrl, BM_SETCHECK, (WPARAM)value, 0L);
}
}
As you can see, the warning is shown because the variable associated with a checkbox control has a value (40), which is not in the expected range (0..2) for a checkbox.
--
jlr
http://jlamas.blogspot.com/[^]
|
|
|
|
|
Dear Experts,
I need to compile an old project (built with VC++) in Visual Studio .Net
2003.
The project is going to build a DLL. When i try to compile the project, i
got the following errors:
c:\thepath\aaa.cpp(890): error C2065: 'm_nBackStyle' : undeclared identifier
c:\thepath\aaa.cpp(890): error C3861: 'm_nBackStyle': identifier not found,
even with argument-dependent lookup
c:\thepath\aaa.cpp(891): error C3861: 'm_nBackStyle': identifier not found,
even with argument-dependent lookup
c:\thepath\aaa.cpp(892): error C3861: 'm_nBackStyle': identifier not found,
even with argument-dependent lookup
in aaa.cpp, 'm_nBackStyle' are used as the following:
// Set up background mode.
890: if(m_nBackStyle != 1 && m_nBackStyle != 2)
891: m_nBackStyle = 2;
892: SetBkMode(di.hdcDraw, m_nBackStyle);
in aaa.h, i have:
#include <atlctl.h>
and aaa.h is already included in aaa.cpp.
I found the following declaration in ddd.h, which is in another project (the
solution has sevreal projects):
LONG m_nBackStyle;
Is it because my project is not set correctly? When i tried to open it in
Visual Studio .Net 2003, i was asked to transfer the project, i wonder if
after the transfer, the dependence relationship of the projects was lost.
I found some info about m_nBackStyle at:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceatl/htm/cccontrl_72.asp
Could you please help me fix the problem.
Thanks!
vic
|
|
|
|
|
You're joking right ? Your files are called aaa.h and ddd.h ?
If you check 'Do not treat <'s as HTML tags' then we can see what your include was.
That link refers to the pocket PC sdk's, is this a pocket PC app ?
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Hi Christian,
Thanks for your note.
I just wanted to explain my problem clearly, so i used a simple note for my files (as used aaa.h and ddd.h), it did not mean my file was exactly named in that way.
i am working on a Desktop computer.
Hope you can give me some suggestion to solve the problem.
Your help is highly appreciated!!!
Thanks!
vic
|
|
|
|
|
Interestingly, when I search the include folder on VC2003, I can't find m_nBackStyle. The VC6 atlctl.h contains it. However, unless your class is derived from CComControlBase, it doesn't matter, it wouldn't be able to see it. Is this your base class ? I guess so, from the include in your header file. It looks to me like this base class has changed a lot, so I reckon you've got your work cut out for you.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
> Dear Experts,
>
> I need to compile an old project (built with VC++) in Visual Studio .Net
> 2003.
> The project is going to build a DLL. When i try to compile the project, i
> got the following errors:
>
> c:\thepath\aaa.cpp(890): error C2065: 'm_nBackStyle' : undeclared identifier
> c:\thepath\aaa.cpp(890): error C3861: 'm_nBackStyle': identifier not found,
> even with argument-dependent lookup
> c:\thepath\aaa.cpp(891): error C3861: 'm_nBackStyle': identifier not found,
> even with argument-dependent lookup
> c:\thepath\aaa.cpp(892): error C3861: 'm_nBackStyle': identifier not found,
> even with argument-dependent lookup
>
> in aaa.cpp, 'm_nBackStyle' are used as the following:
> // Set up background mode.
> 890: if(m_nBackStyle != 1 && m_nBackStyle != 2)
> 891: m_nBackStyle = 2;
> 892: SetBkMode(di.hdcDraw, m_nBackStyle);
>
> in aaa.h, i have:
> #include <atlctl.h>
> and aaa.h is already included in aaa.cpp.
>
> I found the following declaration in ddd.h, which is in another project (the
> solution has sevreal projects):
> LONG m_nBackStyle;
--------------------------------
Hi Christian,
Thanks a lot!
You are right, m_nBackStyle is in atlctl.h.
Please see the info about m_nBackStyle at:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceatl/htm/cccontrl_72.asp
m_nBackStyle is defined in ddd.h, in another class, in another project, in the same solution. There are several projects in the same solution.
If it is because the projects dependence info was lost after i transfer the projects to VS .NET, how can i figure out the dependence relationship between the projects and recover that quickly?
Thanks for your valuable suggestion!
Vic
|
|
|
|
|
vic12000 wrote:
You are right, m_nBackStyle is in atlctl.h.
But ONLY in VC6. It's not there in VC7, at least I couldn't find it.
vic12000 wrote:
m_nBackStyle is defined in ddd.h, in another class, in another project, in the same solution.
If it's another project, I'm not sure how that matters.
vic12000 wrote:
If it is because the projects dependence info was lost after i transfer the projects to VS .NET, how can i figure out the dependence relationship between the projects and recover that quickly?
I reiterate - as it's a member variable, it needs to be declared in a class WHICH IS THE BASE CLASS for the class having the compiler error. I think that you are moving from VC6, where atlctl.h DID contain this variable, to a newer compiler, where it looks to me like it does not.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Is it possible to change the media mode in the middle of a call using TAPI?
I am using the interactive voice mode to send DTMF but afer that i need to send data but if i try to use the lineSetMediaMode command to change to datamodem i get an invalid call state error.
Course theres another way of looking at it, you either can or can't change a modems mode from voice to data mid-call, or there is someway way of passing data to get round it.
thanks
|
|
|
|
|
I was just wondering what is actually returned by this function. In the documentation I find in the description that it returns the number of characters in the string, but the return value description says that it returns the bytes of the string...
which one is it?
|
|
|
|
|
It returns the number of bytes in the object. For Unicode, this is twice the number of characters.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Are you sure about this? I just tried it with VC6, and in a Unicode build, the code
CString strText = _T("abcde");<br />
<br />
long lLength = strText.GetLength();<br />
<br />
ASSERT(sizeof(TCHAR) == 2);<br />
ASSERT(lLength == 5);
does not ASSERT.
|
|
|
|
|
Graham Bradshaw wrote:
Are you sure about this?
No. I misread the help for GetLength() ; when it was talking about MBCS, I was seeing Unicode!
I guess if I had looked at some of my code first, this would have clued me in that it is the number of characters:
...str.GetLength() * sizeof(TCHAR);
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|