|
Maybe placement operator new will throw some exceptions? I do not know. It is appreciated if you or other people could give some insight.
regards,
George
|
|
|
|
|
|
Do you have a question in all of that gibberish somewheres?
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
Hello there ,
I want to get handle of specific application before start ,but i don't know how can i get that message and process it . in fact , i don't know exactly which message , i must be process .
Thank you .
DMASTER
|
|
|
|
|
I think for get a handle to a program you need to run it.
|
|
|
|
|
Dear Hamid, thanks to your reply.
But, my question is that, when ever the user runs an application, how can i make a notification of that process start, in my own application.
In fact, i want to query the process-start! I wonder if any system message (or any other method) exists, when an application starts?!
DMASTER
|
|
|
|
|
If you know name of program you can use of FindWindow but if you dont know name of program you can use of EnumDesktopWindows for Enumerates all windows or EnumWindows for enumerates all windows on the screen that it gives you a handle to each window.
|
|
|
|
|
I know these functions and their usage! but as you know, I should use them AFTER the process is already ran, and (for example) i should use them on the click of a button!
the problem is that, my application should be aware of the process start, AS SOON AS THE PROCESS STARTS, and do its job automatically. I'm looking for a method, to make my application aware of the start event FOR ALL THE APPLICATIONS, not just an specific one. Something like a system message (WM_*), which is sent to ALL the applications (including mine) to notify them of a process start.
DMASTER
|
|
|
|
|
Hello Developer611,
Sounds like you need SetWindowsHookEx() with WH_CBT. Look it up in MSDN. It may help you.
- Bio.
|
|
|
|
|
|
Could someone please help me to find out why the following code asserts:
CDialog dlg = new CDialog();
// hide edit control in dialog
CEdit *pEdit = (CEdit*)dlg.GetDlgItem(IDC_EDIT1);
pEdit->dlg.ShowWindow(SW_HIDE);
This line should read derefferenced pointer to pEdit but I cannot write it correctly here!! pEdit "points to" dlg.ShowWindow(SW_HIDE);
pEdit->dlg.ShowWindow(SW_HIDE);
dlg.DoModal();
This asserts in
CWnd* CWnd::GetDlgItem(int nID) const
{
ASSERT(::IsWindow(m_hWnd));
Thanks for reading
Vaclav
|
|
|
|
|
I think your error is in this line pEdit->dlg.ShowWindow(SW_HIDE); did you use of debugger?
|
|
|
|
|
Vaclav_Sal wrote: CDialog dlg = new CDialog();
...
dlg.DoModal();
How are these compiling?
Vaclav_Sal wrote: CEdit *pEdit = (CEdit*)dlg.GetDlgItem(IDC_EDIT1);
Until the base OnInitDialog() has been called, you can't use a non-existant window.
"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
|
|
|
|
|
Ok,
I am totally confused here. I am obviously missing some basic.
It compiles just fine and partially works - wihtout doing OnInitDialog();
The actual dialog is used in CListView as a "pop up" dialog.
I can access and change the dialog CEdit "control" variable if it is assigned as a text.
I changed it to control and tryed SetDlgItemText(IDC_EDIT1,strText);
and it did not change the text of the control. I cannot figure out how to trace this SetDlgItemText because it does not return anything.
I checked CodePoject and found good tutorial on CDialog but it stated that the "controls" must be created again at run time to change some of the states.That does not make sense to me.
Thanks for your help.I'll keep working on it.
Vaclav
|
|
|
|
|
Vaclav_Sal wrote: I am obviously missing some basic
Yes
MFC windows are created in a two-step process:
1) The CWnd (or derived) object is created
2) the Windows OS object (HWND) is created
MFC windows are destroyed in a similar two-step process:
1) the Windows OS object (HWND) is destroyed
2) The CWnd (or derived) object is destroyed
Any operations on a CWnd object between these 2 steps, which require an
HWND to execute, are going to fail, since the HWND is NULL.
In your code, you call dlg.GetDlgItem() before dlg's HWND is created -
that will fail.
Make sense?
In this case, if you want a control created initially invisible, then
you could just turn off the visible flag in the dialog resource for that
control.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Thanks Mark.
It is begining to make sense.
But I still don't get the corellation between the dialog resource and the code.
It almost looks like I have to duplicate the controls in code.
I got the following woking - somewhat.
Sorry but it has some garbage in it.
I still have some concerns -
The C_Dialog_Block dlg; assigment "runs" the constructor and initializes the controls. What I do not see is how does the OnInitDialog gets involved.
The CreateEx will do - but I cannot figure out how to create the control in the dialog window - it obviously ends up in the parent view ( either this or m_hWnd works).
I have "Indside Visual C++" and using their examples and it still does not compute!
Their example does all the control initialization in OnInitialDialog and as I said I cannot figure it out how it is called.
PS I forgot to mention that the whole mess is in splitter view - I am trying to edit CListView using modal dialog.
Anyway,
as always thanks for your help, I think I will work on it for a while and hopefully get it.
Cheers Vaclav
C_Dialog_Block dlg; // = new C_Dialog_Block();
int iIndex = 0;
int iVisible = 0; // count visible items
The m_item1 is a CString - not a CEdit and this works just fine
strText = m_columnHeader[iIndex++].strText;
dlg.m_item1 = strText;
The m_item3 is CEdit control
dlg.m_item3.CreateEx(WS_EX_CLIENTEDGE, // Make a client edge label.
_T("STATIC"), strText,
WS_CHILD | WS_TABSTOP | WS_VISIBLE ,
10, 10, 100, 100, m_hWnd, (HMENU)IDC_EDIT3);
This will show up in parent view at correct coordinates - need to go to dialog.
The control ID - (HMENU)IDC_EDIT3 seems to have no effect.
dlg.DoModal();
return 1;
|
|
|
|
|
CInternetSession session;
thrown an assertion error in afxwin1.inl Line 27.
what must i do?
|
|
|
|
|
Since there's many different versions of MFC currently in use,
it's hard to guess what's on line 27 of your afxwin1.inl.
Looking at the CInternetSession::CInternetSession() souce code,
I would guess it's
{ ASSERT(afxCurrentAppName != NULL); return afxCurrentAppName; }
which shouldn't fail unless you don't have a CWinApp object in your
project.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
you say that i have to use CWinApp? How can i use this class?
thanks for your interests.
|
|
|
|
|
darkonoid wrote: How can i use this class?
Create an MFC application.
"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
|
|
|
|
|
As David Crow mentioned, you should make your app an MFC app, since
CInternetSession is an MFC class.
If you can't use MFC, then you should use the WinINet[^] APIs
directly.
There are some MFC classes that can be used by non-MFC apps, but I'm not
sure if CInternetSession (and its related classes) is one of them.
You could try it by adding these lines to your app's _tmain() function:
AfxInitialize();
AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0);
Those lines may provide the MFC framework with enough initialization to
use CInternetSession.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
It's an SDI, a doc with 3 form views,
CMyFormView1,CMyFormView2,CMyFormview3.
After I start the program, it is maximized, then I open a file, it become about 1/4 large as before, it is same as a maximized windows except that its size is smaller.
I've tried to keep
<br />
CMyFormView1::OnInitailUpdate<br />
CMyFormView2::OnInitailUpdate<br />
CMyFormView3::OnInitailUpdate<br />
blank (don't call CFormView::OnInitialUpdate), it still has the problem.
modified on Saturday, December 22, 2007 11:19:42 PM
|
|
|
|
|
Hi guys!
I'm using the c++ windows forms desinger (VS 2008 Express) for the first time.
If I want to declare a new variable constant or array, one of these or both errors appear:
error C3845: 'CalculatoR::Form1::i': only static data members can be initialized inside a ref class or value type
error C4368: cannot define 'i' as a member of managed 'CalculatoR::Form1': mixed types are not supported
I think that I maybe declare the variable at the wrong position. Where do I have to declare variables ond so on?
Thanks for your help.
|
|
|
|
|
Austrian_Programmer wrote: think that I maybe declare the variable at the wrong position
And wrong forum, I suppose...
Post your question to the Managed C++/CLI one.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
Hi,
I am using VC++ 2005 with SP1 to develop my application. I want to deploy it on a target machine by using Private side by side assemblies. Hence I have created appropriate application manifest file and copied Microsoft C/C++ Runtimes libraries along with their manifest files to the bin folder of my application and ensure that it is in the path. However I am facing an issue due to a 3rd party library used by my application. This library is a dll built by using VC++ 2005 base libraries. When I try to execute my application I get VC++ runtime error.
Installing VC++ 2005 SP1 redistributable libraries does solves the problem but then my application will be using shared side by side assemblies. I would like to deploy with private side by side assemblies.
Can someone please guide me how do I deploy my application successfully on the target machine taking into account such scenarios.
Thanks and Regards.
|
|
|
|