如何指定MessageBox()弹出对话框的位置?

解决方案 »

  1.   

    http://topic.csdn.net/t/20051231/20/4493487.html
      

  2.   

    有一种方法比较灵活:可以在CXXApp里重载DoMessageBox虚函数,建立自己的Messagebox。
    if (MB_USERDEFINE == nType)// 前有 #define MB_USERDEFINE 0x10000000
    {
    MyMessageboxDlg dlg;

    dlg.Create(IDD_DIALOG_Messagebox, NULL);

    dlg.SetWindowText(lpszPrompt);
    dlg.SetDlgItemText(IDC_STATIC_TEXT, lpszPrompt);
    dlg.ShowWindow(SW_SHOW);
      dlg.UpdateWindow();
    dlg.Start();
    DWORD dwStart = GetTickCount();
    DWORD dwEnd = dwStart;
    do
    {  
    MSG msg;
    while(::PeekMessage(&msg,NULL,0,0,PM_REMOVE)) //使界面保持活动
    {
    ::TranslateMessage(&msg);
    ::DispatchMessage(&msg);
    }
    dwEnd = GetTickCount()- dwStart;  
    } while(dwEnd < SELLPTIME);//SELLPTIME = 80000
    dlg.Stop();
    dlg.DestroyWindow();
    return TRUE;
    }
    调用方法:
     AfxMessageBox("我的Messagebox",MB_USERDEFINE);