Hi there,
I have a (Dialogbox with a button) which I open from the Menu which is
vertical shaped and docked at the left side.
I click this button on the dialogbox and AfxMessagebox is flashed which
is at the center of the dialogbox . In that way its flashing at the
left side. I call a App's DisplayMessage function in order to show this
messagebox. I though if I display this dialog from App , it may come at
the center but that is not the case.
I want this AfxMessageBox to be flashed at the center of the frame.
I read few postings here. I used following code using SetWindowsHookEx.
Sombody before said to subclass the window of AfxMessageBox in the hook
procedure . I am not sure how to do it and after that how to reposition
the window at the center of the main framme/App. So I straightaway used
SetWindowPos but not working satisfactorily.
HHOOK hookSave;
LRESULT CALLBACK hookFunc(int nCode, WPARAM wParam, LPARAM lParam)
{
if ( HCBT_CREATEWND == nCode )
{
#define pcs (((LPCBT_CREATEWND) lParam)->lpcs)
HWND hwndSave = 0;
if( WC_DIALOG == pcs->lpszClass )
{
hwndSave = (HWND) wParam;
}
if ( hwndSave )
{
// subclass_dialog_any_which_way_you_want(hwndSave);
SetWindowPos(hwndSave,HWND_TOP, 10,50,500,300,SWP_SHOWWINDOW);
//MoveWindow(hwndSave,100,500,500,300,false);
//theApp.m_pMainWnd->SubclassWindow(hwndSave);
}
#undef pcs
}
return CallNextHookEx(hookSave, nCode, wParam, lParam);
}
void CLeeApp::DisplayMessage()
{
hookSave = SetWindowsHookEx(WH_CBT, hookFunc, NULL,
::GetCurrentThreadId());
AfxMessageBox("Just for check");
UnhookWindowsHookEx(hookSave);
}
Could someone help me with some guiding code postings.
It will help me a lot.
Thank you,
Lee