|
|
Hi,
I have my MFC wizard generated applicaiton (TestPro),
one global object is created with name CTestProApp theAPP,
This constructir invokes ( CWinApp::CWinApp), from here how the control flows..
From here how will call my progam ( CTestProApp->InistInstance, run..etc) methods, b'coz I did't find any of the methods are calling from CWinApp constructor.
Code for CWinApp constructor: Could any body explain code level how it works,
----------------------------------------------------------------
CWinApp::CWinApp(LPCTSTR lpszAppName)
{
if (lpszAppName != NULL)
m_pszAppName = _tcsdup(lpszAppName);
else
m_pszAppName = NULL;
// initialize CWinThread state
AFX_MODULE_STATE* pModuleState = _AFX_CMDTARGET_GETSTATE();
AFX_MODULE_THREAD_STATE* pThreadState = pModuleState->m_thread;
ASSERT(AfxGetThread() == NULL);
pThreadState->m_pCurrentWinThread = this;
ASSERT(AfxGetThread() == this);
m_hThread = ::GetCurrentThread();
m_nThreadID = ::GetCurrentThreadId();
// initialize CWinApp state
ASSERT(afxCurrentWinApp == NULL); // only one CWinApp object please
pModuleState->m_pCurrentWinApp = this;
ASSERT(AfxGetApp() == this);
// in non-running state until WinMain
m_hInstance = NULL;
m_pszHelpFilePath = NULL;
m_pszProfileName = NULL;
m_pszRegistryKey = NULL;
m_pszExeName = NULL;
m_pRecentFileList = NULL;
m_pDocManager = NULL;
m_atomApp = m_atomSystemTopic = NULL;
m_lpCmdLine = NULL;
m_pCmdInfo = NULL;
// initialize wait cursor state
m_nWaitCursorCount = 0;
m_hcurWaitCursorRestore = NULL;
// initialize current printer state
m_hDevMode = NULL;
m_hDevNames = NULL;
m_nNumPreviewPages = 0; // not specified (defaults to 1)
// initialize DAO state
m_lpfnDaoTerm = NULL; // will be set if AfxDaoInit called
// other initialization
m_bHelpMode = FALSE;
m_nSafetyPoolSize = 512; // default size
}
---------------------------------------------------------------------------
Thanks
Siva
|
|
|
|
|
Siva Sankar Koyi wrote: From here how will call my progam ( CTestProApp->InistInstance, run..etc) methods, b'coz I did't find any of the methods are calling from CWinApp constructor.
it's all done by the frame work.
one way to look at it, is to put a break point in InitInstance, and see where it's called from.
if InitInstance is not called, I think there is a problem with you program, maybe you deleted a line or two in the generated Wizard code.
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
press f9 on the codes you have typed and while running in the debugging mode, just press f5 so that it will stop in the next line of "your" code where you have set a break-point(f9). now it wont be letting you see the MFC AFX zone secrets.
VuNic
|
|
|
|
|
I developed DCOM Server and Mutltithreaded Client in VC++.
When I run client and If DCOM Service is in started state then it gives an Error "Server Execution failed".
Can Anybody help me?
Its urgent!!!
Anita
|
|
|
|
|
how do i find out if a particular process is running or not. I have the ProcessID with me for reference. I dont wanna use OpenProcess method. Is there any other way.
|
|
|
|
|
you can enumerate running processes if you have the name of the executable and match the filenames.
BTW, if you just want to check whether IE is running or not then this code snippet will work just fine
HWND hExplorer = ::FindWindow("IEFrame", NULL);
if (!hExplorer)
{
hExplorer = ::FindWindow("CabinetWClass", NULL);
}
if(hExplorer)
{
}
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg
|
|
|
|
|
why not openprocess?
nave
|
|
|
|
|
you can use
hProcess = OpenProcess (PROCESS_QUERY_INFORMATION|PROCESS_VM_READ, FALSE, yourID);
openprocess/EnumProcessModules/GetModuleFileNameEx/
First you should Handle to process and then you can use this function
and other functions....
|
|
|
|
|
Hi, if you already know the ProcessID you can use EnumProcesses function, instead of OpenProcess - it will tell you if the specified process is running. Good Luck!
|
|
|
|
|
Hi all,
I set the color of combobox text in OnCtlColor. But I cannot set the color for disabled combobox text. It always comes as gray always.
How can I change the text color of disabled combobox?
Thank you.
- NS -
|
|
|
|
|
NS17 wrote: But I cannot set the color for disabled combobox text. It always comes as gray always.
How can I change the text color of disabled combobox?
This cannot be set through OnCtlColor . Subclass the combo for customized functionality.
Nibu thomas
Software Developer
|
|
|
|
|
Thank you for your replay.
How can I do that? Can you give me a little bit explanation?
I am confused, about where should we write the code to set the color?
- NS -
|
|
|
|
|
Just a sample...
HBRUSH CSuperComboBox::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if (nCtlColor == CTLCOLOR_EDIT)
{
if (m_edit.GetSafeHwnd() == NULL)
m_edit.SubclassWindow(pWnd->GetSafeHwnd());
}
else if (nCtlColor == CTLCOLOR_LISTBOX)
{
if (m_listbox.GetSafeHwnd() == NULL)
m_listbox.SubclassWindow(pWnd->GetSafeHwnd());
}
HBRUSH hbr = CComboBox::OnCtlColor(pDC, pWnd, nCtlColor);
return hbr;
}
void CSuperComboBox::OnDestroy()
{
if (m_edit.GetSafeHwnd() != NULL)
m_edit.UnsubclassWindow();
if (m_listbox.GetSafeHwnd() != NULL)
m_listbox.UnsubclassWindow();
CComboBox::OnDestroy();
}
Nibu thomas
Software Developer
|
|
|
|
|
|
Hi all,
I'd like to change the icon of the child window dynamically. When I open a new window each time, I should be able to see the child window with different icon.
Using SetIcon in child window's PreCreateWindow function, I am able to set the icon; but with assertion failure.
Kindly suggest me a solution.
Thanks in advance,
Sarvan AL
|
|
|
|
|
Pass different icons to the child window everytime. And use SetIcon to display it.
Nibu thomas
Software Developer
|
|
|
|
|
Thanks Nibu,
I am able to set the icon. But I am getting the assertion error. I'm not able digonse it.
Do you have any other ideas to achieve this?
Thanks Once again,
Sarvan AL
|
|
|
|
|
Click on retry. Debug and find where it's asserting.
Nibu thomas
Software Developer
|
|
|
|
|
Hi Nibu,
This is my code snippet.
BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CMDIChildWnd::PreCreateWindow(cs) )
return FALSE;
SetIcon(m_hIcon, FALSE) ;
return TRUE;
}
m_hIcon is CChildFrame's member and I load the icon in the constructor, as follows:
m_hIcon = LoadIcon(AfxGetInstanceHandle(),
MAKEINTRESOURCE(ICON_TEST)) ;
What is wrong with this?
|
|
|
|
|
Yeah, I got it.
I moved the code "SetIcon(..)" into OnPaint(). Now it works.
Thanks a lot Nibu.
Sarvan AL
|
|
|
|
|
Sarvan AL wrote: I moved the code "SetIcon(..)" into OnPaint(). Now it works.
something tells me something is wrong
you must be getting Assertion failures cause the target window is not created yet.
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg
|
|
|
|
|
Sarvan AL wrote: I moved the code "SetIcon(..)" into OnPaint(). Now it works.
You are using OnPaint for the wrong reasons.
Nibu thomas
Software Developer
|
|
|
|
|
Sarvan AL wrote: SetIcon(m_hIcon, FALSE) ;
Move this to OnCreate . If you use it here it will assert because the window handle is not created. It is just in PreCreateWindow stage.
Nibu thomas
Software Developer
|
|
|
|
|
I have captured video from webcam and displayed in my dialog.
How can i stop capturing video and disconnect webcam ,when i press Stop button?
JAYARAJ
|
|
|
|