如何指定对话框显示的位置, 100分

lwugui 2003-03-10 08:36:01
我在MainFrame类中加入了一个第三方的网格控件,在响应此控件的右击消息中弹出一个Dialog,怎样指定Dialog显示的位置?我以下的代码只显示在第三方控件的中间

void CMainFrame::OnGridRClick(NMHDR *pNotifyStruct, LRESULT* /*pResult*/)
{
NM_GRIDVIEW* pItem = (NM_GRIDVIEW*) pNotifyStruct;
int Col = pItem->iColumn;
int Row = pItem->iRow;
if(Row > m_Mxl.m_dataList.GetCount()) return;

CPoint pt;
GetCursorPos(&pt); //返回光标的位置
CEditDlg* dlg = new CEditDlg;
dlg->SetWindowPos(this,pt.x,pt.y,30,60,SWP_SHOWWINDOW);
dlg->DoModal();

delete dlg;//

}
...全文
161 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwugui 2003-03-11
  • 打赏
  • 举报
回复
非常感谢jennyvenus() !!!
eatingfish 2003-03-10
  • 打赏
  • 举报
回复
加载完毕没显示时setwindowpos变量
happyprince 2003-03-10
  • 打赏
  • 举报
回复
SetWindowPos的参数
happyprince 2003-03-10
  • 打赏
  • 举报
回复
第一个参数用NULL试试。
dacaifu 2003-03-10
  • 打赏
  • 举报
回复
可以MoveWindow
也可以动态创建CreateWindow
defector 2003-03-10
  • 打赏
  • 举报
回复
放到屏幕左上角
MoveWindow(0,0,100,100)
4个参数分别为TOP,BOTTOM,LEFT,RIGHT
更改它们的值就能移到屏幕的任何地方,并且改变大小。
lwugui 2003-03-10
  • 打赏
  • 举报
回复
非常感谢jennyvenus() !!!
我试试
用户 昵称 2003-03-10
  • 打赏
  • 举报
回复
在OnInitDialog中SetWindowPos
BOOL CDemoDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// TODO: 在此添加额外的初始化
CRect rect;
::GetWindowRect( GetDesktopWindow()->GetSafeHwnd(), rect );
::SetWindowPos( m_hWnd, HWND_TOPMOST, rect.right - 50, rect.top + 50, 34, 34, SWP_SHOWWINDOW );
return TRUE; // return TRUE unless you set the focus to a control
// 异常:OCX 属性页应返回 FALSE
}

上面演示了如何把对话框位置放到屏幕右上角。
boxban 2003-03-10
  • 打赏
  • 举报
回复
在CEditDlg地OnInitialUpdate(好像是这个名字)返回之前调用MoveWindow试试
yndfcd 2003-03-10
  • 打赏
  • 举报
回复
1。在设计对话框时指定位置。
2。用MoveWindow或SetWindowPos.
3.SetWindowPlacement;
dozoo 2003-03-10
  • 打赏
  • 举报
回复
在Dialog的OnInitDialog中用MoveWindow设置就行了
lwugui 2003-03-10
  • 打赏
  • 举报
回复
具体怎么办???

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧