|
Hi All,
I am facing a small problem in accessing a member variable .
the code looks like this .
((CWmApp *)AfxGetApp())->m_WMIDE.m_bLaunchedFromIDE
... This is not working.
where as when i replace the above code with theApp.m_WMIDE.m_bLaunchedFromIDE
it is working.
my doubt is, can we directly use the theApp instance to access its member variables ??
Thanks in advance.
Appu..
"My blood group is not B+.But I have it my blood"
|
|
|
|
|
When you say it's not working what do you mean? Does it compile? If not what is the error message? If it does compile does it fail at runtime and in what manner?
Steve
|
|
|
|
|
I mean, ((CWmApp *)AfxGetApp())->m_WMIDE.m_bLaunchedFromIDE is not returning the correct value,
where as theApp.m_WMIDE.m_bLaunchedFromIDE is returning right value.
Appu..
"My blood group is not B+.But I have it my blood"
|
|
|
|
|
If you add the following:
ASSERT( static_cast<CWmApp*>(AfxGetApp()) == &theApp );
1. Does is compile?
2. If it compiles does the ASSERT fire at runtime in a debug build?
Steve
|
|
|
|
|
AfxGetApp() should only be used to access CWinApp members. Casting the CWinApp pointer will not do what you want.
If it were me and I needed access to the data from anywhere in the app, I would create a separate .h file and make it global OUTSIDE the scope of the app class, along with appropriate Get/Set functions you might deem necessary.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
There is nothing wrong with downcasting assuming CWmApp is derived from CWinApp .
Steve
|
|
|
|
|
I'm kicking a dead horse here, but...
If "theApp" is the one-and-only CWinApp object in the MFC application, then both methods should
work the same.
What happens if you use a more safe cast?
CWmApp *pApp = DYNAMIC_DOWNCAST(CWmApp, AfxGetApp());
if (pApp)
{
pApp->m_WMIDE.m_bLaunchedFromIDE ...
}
Is pApp NULL after the cast?
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
NiceNaidu wrote: ((CWmApp *)AfxGetApp())->m_WMIDE.m_bLaunchedFromIDE
... This is not working.
Is CWmApp a CWinApp -derived class?
What type of pointer is AfxGetApp() returning?
NiceNaidu wrote: can we directly use the theApp instance to access its member variables ??
Yes.
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Sorry friends for not responding to your replies.
It worked fine with theApp.
DavidCrow wrote: Is CWmApp a CWinApp-derived class?
Yes,CWmApp is a CWinApp-derived class.
Thank you all for all your replies.
Appu..
"My blood group is not B+.But I have it my blood"
|
|
|
|
|
Did you ever figure out what type of pointer AfxGetApp() is returning?
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
how to use this property to set the minimum size of a resizable window?
nathan
|
|
|
|
|
You need overrid CWnd::OnGetMinMaxInfo .
Sample code would look like this,
void CMyWnd::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
{
lpMMI->ptMinTrackSize.x = 300;
lpMMI->ptMinTrackSize.y = 200;
}
Prasad
MS MVP - VC++
|
|
|
|
|
Hi all,
I developed an application as an installation in VC++. I am using Visual Studio 2005. The installation works perfectly. The problem arises when I am trying to install the application in a system without .net framework. Then the installation fails. This may be because of some additional dependency of the installation. How can I remove this additional dependency? The requirement specifies that no additional dependency should be there...
Can anybody please help me...
Thanks in Advance.....
|
|
|
|
|
You need to run vcredist_x86 on the target machine, this will install the required dll's. You can download it from here[^].
|
|
|
|
|
Did you not ask this[^] question yesterday? Or is that you've developed a new application today? Well, it applies for all new applications that you develop.
|
|
|
|
|
I thought the question looked familiar...
|
|
|
|
|
thanks Mark:
i have these code in OnInitDialog
CTreeCtrl * tree = new CTreeCtrl();
CRect rect = new CRect(10, 10, 200, 200);
bool suc = tree->Create(WS_THICKFRAME, rect, this, IDC_TREE);
because WS_THICKFRAME, i can resize the tree control in run time
how can i override the OnSize method of this tree control?
also, how can i prevent the user from dragging the top and left border of the tree control to resize it?
Thanks!
|
|
|
|
|
nathan7 wrote: i have these code in OnInitDialog
CTreeCtrl * tree = new CTreeCtrl();
Why is this not a member of your dialog class?
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
nathan7 wrote: Mark Salsbery pls come in
Hola.
nathan7 wrote: bool suc = tree->Create(WS_THICKFRAME, rect, this, IDC_TREE);
You may want (or need) the WS_VISIBLE, WS_CHILD, and WS_BORDER flags as well, plus any treeview-
specific styles.
nathan7 wrote: how can i override the OnSize method of this tree control?
Derive a class from CTreeCtrl and add a WM_SIZE handler there.
nathan7 wrote: also, how can i prevent the user from dragging the top and left border of the tree control to resize it?
I believe you can use the WM_SIZING message. This would be done in the derived class as well.
Also, see David Crow's reply - you'll probably want to deal with the scope of your "tree"
variable!
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
|
Hi.
This code based on
Building Browser Helper Objects with Visual Studio 2005
Tony Schreiner, John Sudds
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ietechcol/cols/dnexpie/expie_hello_bho.asp
but i trying to manipulating the dom , with other javascript code. how can i do it,
this is the code ;
Code:
void CUygulama::QPencereGoster(IHTMLDocument2* pDocument)
{
HWND hwnd;
HRESULT hr = m_spWebBrowser->get_HWND((LONG_PTR*)&hwnd);
if (SUCCEEDED(hr))
{
// Javascript goes here
}
}
And this is the javascript
Code:
function popupPage() {
var page = "http://www.webservisidomaini.com/panel.php";
windowprops = "location=no,scrollbars=no,menubars=no,toolbars =no ,resizable=no,width=600 height=300";
window.open(page, "Popup", windowprops);}
how can i implement this js to c++ application. i think this need dom scripting. how can i do this ?
in this sample,
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ietechcol/cols/dnexpie/expie_hello_bho.asp
please look for Manipulating the DOM section.
Example BHO code removing images from active web page, now i want to implement other js code, for like this example . How can i do this. any suggestions, resources i 'm looking for.
Thanks
|
|
|
|
|
Hi everyone. I'm new to Visual C++ (experienced with C++) and I'm not sure if my question is a Visual C++ problem. I want to develop a program very similar to a find feature in a web browser, BUT with very specific search features. I'm wondering if any of you guys know some codes that would allow a C++ application to look through a set of data in a web browser and return something (if there's a match). Or if this would be easier to make if it was an IE plug in. Hope to hear from someone soon!
|
|
|
|
|
|
I am trying to read values from from a text file using sscanf. The file contains numberic values but I want to read them in as strings, each line at a time. Values are listed as shown:
example text file:
1.000 2.000
3.000 4.000
5.000 6.000
...
Here is the code.
CStdioFile LFileData;<br />
...<br />
LFileData.ReadString(LCStrReadStr);<br />
MessageBox(LCStrReadStr);<br />
sscanf(LCStrReadStr, "%s %s", LCStrTemp1, LCStrTemp2);
The problem is that both LCStrTemp1 and LCStrTemp2 is getting the value of the 2nd column only. The first column is lost. I outputted LCStrReadStr using MessageBox to make sure it was correct. It is. So that problem is in sscanf. Why am I not getting the right values?
Thanks in advance.
|
|
|
|
|
What are LCStrTemp1 and LCStrTemp2?
They don't point to the same place do they?
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|