お世話になります。
現在SDIで画面を2分割している状態で
分割したView上にモードレスダイアログを表示させようとしています。
モードレスダイアログは表示できているのですが
View上とはかけ離れた場所に表示してしまっています。
View上に表示させるにはどのようにすれば宜しいでしょうか。
アドバイス宜しくお願い致します。
環境
VC++ 6.0
MFC
モードレスダイアログの表示の所のソースを提示した方が
良いのではないかと思います。
書かれている内容だけでは単にかけ離れているとしか
分からないのでアドバイスは難しいと思います。
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;
}
宜しくお願い致します。
> 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の位置に合わせて表示したいと言うことでしょうか?
その意図する所(目的)はなんでしょうか?個人的に興味があります。
よろしければ教えてください。