ペイン上にモードレスダイアログを表示したい

[戻る]
ソウゴ 2008/10/06(月) 17:47:56
お世話になります。

現在SDIで画面を2分割している状態で
分割したView上にモードレスダイアログを表示させようとしています。

モードレスダイアログは表示できているのですが
View上とはかけ離れた場所に表示してしまっています。

View上に表示させるにはどのようにすれば宜しいでしょうか。
アドバイス宜しくお願い致します。


環境
VC++ 6.0
MFC

PATIO 2008/10/06(月) 17:57:28
モードレスダイアログの表示の所のソースを提示した方が
良いのではないかと思います。
書かれている内容だけでは単にかけ離れているとしか
分からないのでアドバイスは難しいと思います。

ソウゴ 2008/10/06(月) 18:10:55
PATIOさん>
了解です。
ソースを提示させて頂きます。

長いですが
ご了承下さい

○CWndMonitorCtrlクラス内での処理
【デスクトップ上のウィンドウを列挙してモードレスダイアログを作成しています。】

int CWndMonitorCtrl::WndDetection()
{
//    HWND g_hwnd[MAX_NUM_ENUMWND];    // 格納する配列変数
    EnumWindows(EnumWindowsProc,NULL);
    return 0;
}


BOOL CALLBACK EnumWindowsProc(HWND hWindow,LPARAM lData)
{
【※ウィンドウの列挙する箇所は省略します】

        CCommonLib CL;
        CL.CreateWndThumbnail(hWindow,DDL.GetPointX(),DDL.GetPointY
(),DDL.GetWidth(),DDL.GetHeight());
        
    }

    return TRUE;
}

○CCommonLibクラス内での処理
モードレスダイアログを作成しています。

int CCommonLib::CreateWndThumbnail(HWND hWindow,int iPointX,int iPointY,int 
iWidth,int iHeight)
{
    HWND hWnd = GetSafeHwnd();

    //ウィンドウサムネイル表示処理
    WndThumbnailDlg *g_WndThumbnailDlg;
    g_WndThumbnailDlg = NULL;
    g_WndThumbnailDlg = new WndThumbnailDlg(this);

    g_WndThumbnailDlg->Create(IDD_WNDTHUMBNAIL);
    g_WndThumbnailDlg->MoveWindow
(iPointX/20,iPointY/20,iWidth/20,iHeight/20,false);


    return TRUE;
}

宜しくお願い致します。

maru 2008/10/06(月) 20:30:19
>         CL.CreateWndThumbnail(hWindow,DDL.GetPointX(),DDL.GetPointY
> (),DDL.GetWidth(),DDL.GetHeight());
DDL.GetXX()関数は何を返す仕様ですか?
実際に返ってきた値はその仕様通りですか?

>    g_WndThumbnailDlg->MoveWindow
> (iPointX/20,iPointY/20,iWidth/20,iHeight/20,false);
/20は何の係数でしょうか?


ところで
> 分割したView上にモードレスダイアログを表示させようとしています。
とはモードレスダイアログをViewの位置に合わせて表示したいと言うことでしょうか?
その意図する所(目的)はなんでしょうか?個人的に興味があります。
よろしければ教えてください。

古いスレッドには追加発言できません。