Re: Maximized n minimized other application
Here is one solution
Code to find hwnd from process ID:
struct ProcessWindowData
{
public:
ProcessWindowData(DWORD dwProcessId) :
m_dwProcessId(dwProcessId),
m_hWnd(0)
{
ASSERT(0 != dwProcessId);
}
DWORD ProcessId()
{
return m_dwProcessId;
}
void WindowHandle(HWND hWnd)
{
ASSERT(0 != hWnd);
m_hWnd = hWnd;
}
HWND WindowHandle()
{
return m_hWnd;
}
private:
DWORD m_dwProcessId;
HWND m_hWnd;
};
DWORD GetWindowProcessId(HWND hWnd)
{
ASSERT(0 != hWnd);
DWORD dwProcessId = 0;
::GetWindowThreadProcessId(hWnd, &dwProcessId);
ASSERT(0 != dwProcessId);
return dwProcessId;
}
BOOL CALLBACK EnumWindowProc(HWND hWnd,
LPARAM lParam)
{
ASSERT(0 != hWnd && 0 != lParam);
BOOL bContinue = TRUE;
ProcessWindowData* pData = reinterpret_cast<ProcessWindowData*>(lParam);
if (pData->ProcessId() == GetWindowProcessId(hWnd))
{
pData->WindowHandle(hWnd);
bContinue = FALSE;
}
return bContinue;
}
HWND GetProcessWindow(DWORD dwProcessId)
{
ASSERT(0 != dwProcessId);
ProcessWindowData data(dwProcessId);
::EnumWindows(EnumWindowProc, reinterpret_cast<LPARAM>(&data));
return data.WindowHandle();
}
How to use it
void CSampleDlg::RunNotePad()
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof( STARTUPINFO ));
si.cb = sizeof( STARTUPINFO );
ZeroMemory( &pi, sizeof( PROCESS_INFORMATION ));
char Fname[MAX_PATH];
strcpy(Fname,"c:\\winnt\\Notepad.exe");
if
(CreateProcess(Fname,Fname,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&
si,&pi))
{
WaitForInputIdle(pi.hProcess,INFINITE);
m_OtherhWnd = GetProcessWindow(pi.dwProcessId);
}
}
void CSampleDlg::OnSize(UINT nType, int cx, int cy)
{
if (nType == SIZE_MINIMIZED)
{
::ShowWindow(m_OtherhWnd,SW_MINIMIZE);
}
else if (nType == SIZE_RESTORED)
{
::ShowWindow(m_OtherhWnd,SW_RESTORE);
}
CDialog::OnSize(nType, cx, cy);
}
AliR.
"anshu" <premanshu.sinha@gmail.com> wrote in message
news:1146721490.045082.285390@j33g2000cwa.googlegroups.com...
hi guys
i think u r not getting my question , or i m not getting ur ans bcz of
newcomer
my question is , if i open my mdi application n suppose at that time
allreddy i opend a word or notepad or any other
application then i want whenever i minimize my application that
application ( word / notepad / nyother ) shud minimize or whenever
i maximize my aplication that application ( word / notepad / nyother )
shuld maximize.
so frnds is it posible or not if yes then how plz reply me
Premanshu sinha
premanshu.sinha@gmail.com